我對android開發頗爲陌生,目前我正在開發一個非常簡單的應用程序,其中也包含一些視頻。爲了演示我的問題,我在我的res/raw /目錄中有兩個視頻(例如video1.mp4和video2.mp4)。我希望在第一個結束後立即開始播放第二個視頻。這是我如何調用視頻:Android VideoView - 在某些設備上更改路徑後的空白視頻
public void showVideo1() {
VideoView vd = (VideoView)findViewById(R.id.videoview);
vd.setVideoPath("android.resource://com.myapp.hello/" + R.raw.video1);
vd.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
{
public void onCompletion(MediaPlayer mp)
{
Log.d("VideoComplete", "Video 1 is complete");
showVideo2(); // start playing the second video...
}
});
vd.start();
}
public void showVideo2() {
VideoView vd = (VideoView)findViewById(R.id.videoview);
vd.setVideoPath("android.resource://com.myapp.hello/" + R.raw.video2);
vd.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
{
public void onCompletion(MediaPlayer mp)
{
Log.d("VideoComplete", "Video 2 is complete");
}
});
vd.start();
}
此示例適用於大多數設備 - 我稱之爲showVideo1()調用showVideo2,無論是播放視頻時,就是這樣。但是我發現有些設備不會播放第二個視頻(???)。例如,我的舊三星Galaxy 5 i5500在完成第一個視頻後只顯示一個空白屏幕 - 我可以在調試中看到第二個視頻已加載並開始播放,但不顯示 - 第一個視頻播放沒有問題。這款手機使用的是Android v2.2,我也嘗試過使用相同操作系統版本的其他設備(Galaxy Tab GT-P1000),並在這裏播放了兩個視頻。
我試圖重新編碼視頻(認爲這是一個編解碼器錯誤),但仍然沒有運氣。我也玩過setZOrderOnTop(true),seekTo(0)......,這讓我瘋狂。
有什麼建議嗎?我未來的應用取決於這個功能(能夠在所有設備上播放一個視頻),所以我真的非常渴望這一點。
看來你的設備不支持第二個視頻。你是否嘗試在另一個應用中播放第二個視頻? – busylee 2015-06-15 11:25:39