我和Android初学者,所以对我很轻松; - )
我正在尝试播放一系列视频文件,我正在从服务器上下载。 挑战在于我希望从一个文件平滑过渡到另一个文件。
我的想法是让两个MediaPlayer实例各自准备然后依次播放。我不清楚他们是否可以共享相同的SurfaceView? 或许,我应该使用不同的视图并在它们之间交换? 或者,这个想法一起是一个坏主意?
当我尝试使用不可见的视图运行配置MediaPlayer实例时,它似乎会使我的模拟器崩溃。
答案 0 :(得分:3)
您可以将播放列表设为数组列表
private int url = 0;
private ArrayList<String> videoList = new ArrayList<String>();
并将网址添加到列表
videoList.add("/mnt/sdcard/v4.mp4");
videoList.add("/mnt/sdcard/v3.mp4");
videoList.add("/mnt/sdcard/v1.mp4");
和创建方法调用
playVideo(videoList.get(0));
然后OnCompletionListener方法调用
url++;
if (mVideoView != null) {
current = null;
mVideoView.stopPlayback();
}
if (url > videoList.size() - 1) {
url = 0;
}
playVideo(videoList.get(url));
答案 1 :(得分:0)
我关注了API Demo on Video View,以下是设置VideoView的方式:
mVideoView.setVideoURI(Uri.parse(Uri.encode(URLString)));
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
我不是 100%确定,但很确定,当您调用VideoView.setVideoURI()时,VideoView会创建并设置MediaPlayer对象。然后它会在下次调用时将MediaController附加到它。
您可以设置OnCompletionListener(more info here in MediaPlayer doc)的回调,并为播放列表中的新文件调用VideoView.setVideoURI()。