2012-10-22 185 views
5

我想連續播放2個視頻。第一個視頻總是玩的很好。完成後,您可以在日誌中看到它設置了新的視頻URL,但是然後SurfaceView會拋出一個錯誤,並且VideoView會與第一個視頻的最後一幀一起凍結。沒有其他事情發生 有什麼想法?謝謝 ! LE:令人驚訝的是,OnPreparedListener被調用第二個視頻。 LE2:有時候第二個視頻播放的很好,有時候它不會......而且我沒有在它的工作和不工作之間改變一行代碼。這純粹是隨機...Android VideoView不播放連續視頻

LE3:快速的解決辦法是設置了新的視頻網址前加上這一行:從OnCompletionListener

mVideoView.setVisibility(View.GONE); 

代碼:

setCurrentPlaybackUrl(); // sets mCurrentMediaUrl to the second video URL 
mVideoView.setVideoPath(mCurrentMediaUrl); 
mVideoView.start(); 

這是日誌輸出時第一個視頻結束播放:

10-22 12:32:35.762: I/AwesomePlayer(126): setDataSource_l('https://xx/TestingVideo_lo.mp4') 
10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3) 
10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22 
10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3) 
10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22 

回答

4

試穿onCompletion(MediaPlayer mp),t o加mp.stop()然後做你的東西。

編輯:我曾嘗試這樣做,它的工作:

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
@Override 
public void onCompletion(MediaPlayer mp) { 
     play_video(); 
} 
}); 

play_video(); 

其中play_video是下面的方法:

void play_video() { 
    Uri uri = Uri.parse(video_link); 
    videoView.setVideoURI(uri);  
    videoView.requestFocus(); 
    videoView.setVisibility(View.VISIBLE); 
    videoView.start(); 

} 

唯一的區別是,我打同一個視頻的兩倍,而不是兩個不同的視頻。

+0

沒有任何變化。 –

+1

有時候第二個視頻播放得很好,有時候它不會......並且我沒有在它的工作和不工作之間改變一行代碼。這是純粹的隨機... –

+0

0/3成功嘗試與2個不同的URL。 1/3成功嘗試使用相同的URL。 我要瘋了... –