我是和机器人初学者,所以去我容易;-)Android是否支持视频文件的播放列表?
我想播放我从服务器上下载的视频文件序列。 挑战在于我想从一个文件到另一个文件的平滑过渡。
我的想法是每个准备好两个MediaPlayer实例,然后轮流播放。我不清楚他们是否可以共享同一个SurfaceView? 或者,我应该使用不同的意见,并在他们之间交换? 或者,这个想法是一个坏主意吗?
当我尝试运行配置MediaPlayer实例与不可见的视图时,它似乎崩溃我的模拟器。
我是和机器人初学者,所以去我容易;-)Android是否支持视频文件的播放列表?
我想播放我从服务器上下载的视频文件序列。 挑战在于我想从一个文件到另一个文件的平滑过渡。
我的想法是每个准备好两个MediaPlayer实例,然后轮流播放。我不清楚他们是否可以共享同一个SurfaceView? 或者,我应该使用不同的意见,并在他们之间交换? 或者,这个想法是一个坏主意吗?
当我尝试运行配置MediaPlayer实例与不可见的视图时,它似乎崩溃我的模拟器。
我跟着API Demo on Video View,这里是它如何树立VideoView:
mVideoView.setVideoURI(Uri.parse(Uri.encode(URLString)));
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
我不是100%肯定,但可以肯定的是,VideoView创建并设置了一个MediaPlayer对象时你可以调用VideoView.setVideoURI()。然后在下一次调用时将MediaController附加到它。
您可能只需为OnCompletionListener(more info here in MediaPlayer doc)设置一个回调,并为播放列表中的新文件调用VideoView.setVideoURI()。
是的,可以在新网址中处理onComplete传递。 但是这会导致电影和我想避免的黑屏之间的延迟。 – DanJ 2010-04-27 08:19:24
你可以做一个播放列表作为数组列表
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));
嗨DanJ :)请告诉我们你是如何解决你的问题? – AB1209 2013-01-04 13:42:51
我无法找到平滑过渡的方法 – DanJ 2013-01-13 09:40:46