5

我正在尝试通过 Android videoview 播放视频。这是我的代码:

super.onCreate(savedInstanceState);
setContentView(R.layout.video);
VideoView videoView = (VideoView) findViewById(R.id.videoView);
videoView.setVideoURI(uri);
videoView.requestFocus();
videoView.start();

这很好用,但是有些手机仍然显示标题为“无法播放视频”的对话框。

我的问题是如何禁用此通知窗口?我的意思是,我可以在调用 videoView.start() 之前检查视频文件是否受支持吗?或者我可以禁用或阻止调用系统弹出通知窗口吗?

如果手机不支持,我想直接跳过视频,没有通知窗口。

4

2 回答 2

3

在您启动 VideoView 之前,我使用了 setOnErrorListener 来检查视频是否会播放。

    // Restart if PROBLEM
    myVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {

        public boolean onError(MediaPlayer mp, int what, int extra) {
            // TODO Auto-generated method stub
            Intent intent = getIntent();
            overridePendingTransition(0, 0);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

            finish();

            overridePendingTransition(0, 0);
            startActivity(intent);

            return true;
        }

    });
    myVideoView.start();
于 2012-10-11T08:23:30.043 回答
0

我找到了另一种简单的方法MediaPlayer来解决这个问题的一部分。

try {
    MediaPlayer mp = MediaPlayer.create(this, uri);
    mp.release();
} catch (Exception e) {
    Log.e("MediaPlayer", "can NOT play: " + uri);
}

上面的代码可以过滤掉大部分不支持的视频VideoView,但并不完美,因为我发现一些不支持的mkv/mpg视频也通过了上面的测试。

无论如何,这是另一种思路。我把它贴在这里,希望有人可以改进它。

于 2013-12-05T13:24:22.783 回答