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();