2013-08-21 39 views
0

我有很多音軌需要依次播放。我使用MediaPlayer的OnCompletionListener如下:是否可以縮短使用MediaPlayer播放的音軌之間的時間間隔?

public void OnCompletion(MediaPlayer mp) 
{ 
    _completed++; 
    mp.Reset(); 

    if (_completed < _tracks.Length) 
    { 
     try 
     { 
      AssetFileDescriptor afd = _context.Resources.OpenRawResourceFd(_tracks[_completed]); 

      if (afd != null) 
      { 
       mp.SetDataSource(afd.FileDescriptor, afd.StartOffset, afd.Length); 
       afd.Close(); 
       mp.Prepare(); 
       mp.Start();  
      } 


     } 
     catch (Exception ex) 
     { 

      throw; 
     } 
    } 
} 

這工作,但有軌道之間明顯的延遲。我想盡可能地減少這段時間。這可能嗎?

+0

http://stackoverflow.com/questions/5552810/delayed-audio-in-android – Pavlos

回答

1

MediaPlayer「鏈接」添加了API級別16(Jellybean)。你會感興趣的方法是setNextMediaPlayer(MediaPlayer next)

設置MediaPlayer開始時,這個MediaPlayer結束播放(即到達流的末尾)。媒體框架將盡可能無縫地嘗試從這個玩家轉換到下一個玩家。下一位玩家可以在完成前隨時設置。下一位玩家必須由應用程序準備,應用程序不應該調用start()

相關問題