2011-11-28 63 views
2

我正在開發一個我想要顯示視頻的應用程序。在這裏,我的要求是,我應該可以在播放視頻的同時播放視頻(比如視頻A 2分鐘),然後再切換到視頻B再播放15秒,然後再切換回視頻A.但是,每當我切換回視頻A,它應該從之前停止的地方開始。Android媒體播放器 - 如何在視頻之間切換?

我的問題是

  1. 我如何能實現視頻之間的切換?
  2. 怎樣才能實現標記視頻A從以前暫停的時間恢復?

回答

1

如何實現標記視頻A從以前暫停的時間恢復?

你可以做一個seekTo()跳轉到一個特定的位置。但問題在於你應該等待seekTo()完成。 Android不提供VideoView的這種回調。

所以不是我建議你去Vitamio的VideoView

+0

嗨Reno,謝謝你的回覆。我還有一個問題。 – bheema

+0

由於我正在開發自定義媒體播放器,所以我想要控制android基本媒體播放器。維他米奧沒有給我靈活性,我猜?所以決定自定義默認的Android播放器。這裏我的問題是,我們可以在玩遊戲時在流之間切換嗎?例如:目前我的媒體播放器正在播放A流中的視頻,然後過了一段時間,我想要同一個媒體播放器實例(我不想創建媒體播放器的新實例)播放來自B流的視頻。是否可能?如果可能的話我怎麼能做到這一點? – bheema

1

您可以通過保持兩份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()); 
     } 
    }); 
+0

我應該在哪裏放這些代碼? –

+0

當您想要更改視頻時使用此功能。 – ixorakos