【问题标题】:How to check if file is supported by android videoview by code?如何通过代码检查android videoview是否支持文件?
【发布时间】:2013-12-06 08:56:51
【问题描述】:

我正在尝试通过 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() 之前检查视频文件是否受支持吗?或者我可以禁用或阻止调用系统弹出通知窗口吗?

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

【问题讨论】:

  • 您好,您找到解决方案了吗?

标签: android video android-videoview playback


【解决方案1】:

我在你启动 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();

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2018-05-22
      相关资源
      最近更新 更多