我正在開發一個我想要顯示視頻的應用程序。在這裏,我的要求是,我應該可以在播放視頻的同時播放視頻(比如視頻A 2分鐘),然後再切換到視頻B再播放15秒,然後再切換回視頻A.但是,每當我切換回視頻A,它應該從之前停止的地方開始。Android媒體播放器 - 如何在視頻之間切換?
我的問題是
- 我如何能實現視頻之間的切換?
- 怎樣才能實現標記視頻A從以前暫停的時間恢復?
我正在開發一個我想要顯示視頻的應用程序。在這裏,我的要求是,我應該可以在播放視頻的同時播放視頻(比如視頻A 2分鐘),然後再切換到視頻B再播放15秒,然後再切換回視頻A.但是,每當我切換回視頻A,它應該從之前停止的地方開始。Android媒體播放器 - 如何在視頻之間切換?
我的問題是
您可以通過保持兩份MediaPlayers和它們之間切換切換視頻。 你準備第二個尋找它,當時間正確的時候你將它們切換出來。 下面的代碼是用於相同的事情,除了我在用戶交互中使用它。 (您可以忽略AssetFileDesciptor,因爲它是我打開視頻的方式)。
videoPlayer2 = new MediaPlayer();
AssetFileDescriptor descriptor = ExpansionFiles.SharedSingleton().getZipAssetFileDescriptorForFile("video" + camera + ".mp4", context);
if (descriptor != null) {
try {
videoPlayer2.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
videoPlayer2.prepare();
} catch (IOException e) {
e.printStackTrace();
}
videoPlayer2.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
videoPlayer2.start();
videoPlayer2.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
@Override
public void onSeekComplete(MediaPlayer mp) {
videoPlayer.setDisplay(null);
videoPlayer2.setDisplay(surfaceHolder);
videoPlayer2.setOnVideoSizeChangedListener(new MediaPlayer.OnVideoSizeChangedListener() {
@Override
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
if (videoPlayer2 != null && videoPlayer != null) {
videoPlayer = videoPlayer2;
videoPlayer2 = null;
}
}
});
}
});
videoPlayer2.seekTo(videoPlayer.getCurrentPosition());
}
});
我應該在哪裏放這些代碼? –
當您想要更改視頻時使用此功能。 – ixorakos
嗨Reno,謝謝你的回覆。我還有一個問題。 – bheema
由於我正在開發自定義媒體播放器,所以我想要控制android基本媒體播放器。維他米奧沒有給我靈活性,我猜?所以決定自定義默認的Android播放器。這裏我的問題是,我們可以在玩遊戲時在流之間切換嗎?例如:目前我的媒體播放器正在播放A流中的視頻,然後過了一段時間,我想要同一個媒體播放器實例(我不想創建媒體播放器的新實例)播放來自B流的視頻。是否可能?如果可能的話我怎麼能做到這一點? – bheema