我是和機器人初學者,所以去我容易;-)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