【问题标题】:Android: VideoView not working on some devicesAndroid:VideoView 在某些设备上不起作用
【发布时间】:2013-05-24 21:15:09
【问题描述】:

我有一个VideoView,它适用于很多设备,但不适用于其他设备。有一段时间它会显示我的ProgressDialog,然后它会触发一个弹出窗口,上面写着Impossible to play video(翻译自意大利语,所以可能有所不同,但……你明白)。

例如它适用于三星 Galaxy S:

  • 安卓版本:2.2.1
  • 内核版本:2.6.32.9

但不是在 HTC Magic 上

  • 安卓版本:2.2
  • 内核版本:2.6.34.5

我要播放的视频来自一个 URL,它是一个 MP4 文件。

代码如下:

public class VideoViewActivity extends BaseActivity {

    ProgressDialog progDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Uri videoUri = Uri.parse(getIntent().getStringExtra("url"));
        setContentView(R.layout.activity_video_view);
        VideoView vv = (VideoView) findViewById(R.id.videoView);
        vv.setMediaController(new MediaController(this));
        vv.requestFocus();
        vv.setVideoURI(videoUri);
        vv.start();

        if (app.isEnglish()) {
            progDialog = ProgressDialog.show(this, getResources().getString(R.string.en_wait), getResources().getString(R.string.en_load), true);
        }
        else {
            progDialog = ProgressDialog.show(this, getResources().getString(R.string.it_wait), getResources().getString(R.string.it_load), true);
        }


        progDialog.setCancelable(true);
        vv.setOnPreparedListener(new OnPreparedListener() {
            public void onPrepared(MediaPlayer mp) {
                progDialog.dismiss();
            }
        });
    }
}

这就是布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".VideoViewActivity" >

    <VideoView
        android:id="@+id/videoView"
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

有什么建议吗?

【问题讨论】:

  • 可能是视频的分辨率。
  • 我正在尝试更改视频的分辨率...会让您知道
  • 没什么...我尝试了很多不同的分辨率和编解码器... HTC Magic with CyanoGen Mod 6.0.0 没有任何效果!
  • @aveschini 你解决了吗?我现在也面临同样的情况。
  • 抱歉@kabuto178,我最终调用了 youtube 应用程序来显示视频...

标签: android android-videoview


【解决方案1】:

我在使用 videoView 时也遇到了同样的问题。我使用意图使用设备安装的媒体应用程序管理它。他们正在那里申请管理媒体,为什么我们要浪费时间......

PackageManager packageManager = getPackageManager();
                    Intent videoIntent = new Intent(Intent.ACTION_VIEW);
                    videoIntent.setDataAndType(Uri.parse(videoUrlLink),
                            "video/*");
                    List listOfSuppApps = packageManager
                            .queryIntentActivities(videoIntent,
                                    PackageManager.MATCH_DEFAULT_ONLY);
                    if (listOfSuppApps.size() <= 0) {
                        Toast.makeText(getApplicationContext(),
                                getResources().getString(R.string.No_supported_applications_Installed),
                                Toast.LENGTH_LONG).show();
                    } else {

                        Intent intnt = new Intent(Intent.ACTION_VIEW);
        intnt.setDataAndType(Uri.parse(urlLink), mediaType+"/*");
        context.startActivity(intnt);
                    }

以上是我的代码

【讨论】:

  • 不行...视频仍然无法与其他应用一起播放...我认为这是编解码器或分辨率的问题。
猜你喜欢
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多