Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android VideoView在sdk 4.3中不工作_Android_Android Videoview - Fatal编程技术网

Android VideoView在sdk 4.3中不工作

Android VideoView在sdk 4.3中不工作,android,android-videoview,Android,Android Videoview,我正试图在视频视图上播放设备中的视频。这是我的密码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vView = (VideoView) findViewById(R.id.videoView); mc = new MediaController(this);

我正试图在
视频视图上播放设备中的视频。这是我的密码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    vView = (VideoView) findViewById(R.id.videoView);
    mc = new MediaController(this);
    vView.setMediaController(mc);
    String new_emulator_path = "/storage/emulated/0/Download/testvid.mp4";
    Uri uri = Uri.parse(new_emulator_path);
    vView.setVideoURI(uri);
    vView.requestFocus();
    mc.show();
    vView.start();
}

我见过很多关于这个错误代码的线程,但无法理解任何解释

编辑:我试过播放不同格式的视频——mkv(H264 mpeg-4 AVC)、3gp(H263)、mp4(H264 mpeg-4 AVC)、flv(FLV1)。带有3gp扩展名和H263格式的视频播放效果良好,而其他视频则会给出如上所述的错误消息。关于如何解决这个问题有什么想法吗?

根据Android,在Android 5.1之前不支持H265 所以我认为你对此有异议。您可以使用(或者更好的方法是围绕VideoPlayer和ExoPlayer的简单包装)

顺便说一句,使用以下代码可能会对您有所帮助:

VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setVideoPath(YOUR_LOCAL_FILE_PATH);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()  {
         @Override
         public void onPrepared(MediaPlayer mp) {
                    Log.i(TAG,"Hoooray");
                 }
         });

videoView.start();
正如我从您的代码中发现的,您希望在emulator中显示视频,所以请先查看相关帖子。

根据Android,在Android 5.1之前不支持H265 所以我认为你对此有异议。您可以使用(或者更好的方法是围绕VideoPlayer和ExoPlayer的简单包装)

顺便说一句,使用以下代码可能会对您有所帮助:

VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setVideoPath(YOUR_LOCAL_FILE_PATH);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()  {
         @Override
         public void onPrepared(MediaPlayer mp) {
                    Log.i(TAG,"Hoooray");
                 }
         });

videoView.start();

正如我从您的代码中了解到的,您希望在emulator中显示视频,因此首先请参阅相关文章。

对于我尝试在4.3 sdk中播放的大多数视频,编码格式为H264。根据文档,H.264 AVC从Android 3+本身就可以使用。如果我的解释有误,请纠正我。@AMRUTHAKALIVARAPU你是对的。你能提供更多的日志吗?还从以下uri测试Mp4视频,我在VideoView上测试它,效果很好。我已经从您提到的链接中测试了mp4视频,但仍然出现相同的错误。找不到演示exoplayer用法的简单示例。@AMRUTHAKALIVARAPU使用exoplayer的ExoMedia包装,效果非常好。我尝试在4.3 sdk中播放的大多数视频的编码格式都是H264。根据文档,H.264 AVC从Android 3+本身就可以使用。如果我的解释有误,请纠正我。@AMRUTHAKALIVARAPU你是对的。你能提供更多的日志吗?还从以下uri测试Mp4视频,我在VideoView上测试它,效果很好。我已经测试了您提到的链接中的mp4视频,但仍然出现相同的错误。找不到演示exoplayer用法的简单示例。@AMRUTHAKALIVARAPU使用ExoMedia在exoplayer周围包装它工作得非常好。
VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setVideoPath(YOUR_LOCAL_FILE_PATH);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()  {
         @Override
         public void onPrepared(MediaPlayer mp) {
                    Log.i(TAG,"Hoooray");
                 }
         });

videoView.start();