2013-02-22 26 views
2

我有一個擴展Service的類,我有一個MediaPlayer來管理我的應用程序的背景音樂。我的媒體播放器沒有「循環」

MediaPlayer player = MediaPlayer.create(this, R.raw.background_music); 
player.setLooping(true); 

的問題是,它好好嘗試一下「循環」好:我的意思是,當MP3文件結束,有一個沉默的第二前再次啓動。 但是,在MP3文件,其實,有沒有沉默任何第二。

我怎樣才能解決這個問題?

+0

我同意bofredo android不支持免提音樂但 – 2013-02-22 11:46:42

回答

0

您可以嘗試使用的Soundpool來播放音頻文件(它循環非常好,無延遲,但可能不適合一些音頻資源)。

這是某種形式的執行情況(棄用拆除和資源的恰當的結束留作家庭作業:))

SoundPool pool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); 
afd = getResources().openRawResourceFd(audioResource); 
pool.setOnLoadCompleteListener(new OnLoadCompleteListener() { 
    @Override 
    public void onLoadComplete(SoundPool soundPool, int sampleId, int status) { 
     if (0 == status) { 
      soundPool.play(sampleId, 1f, 1f, 10, -1 /* looping parameter */, 1f); 
     } 
    } 
}); 
pool.load(afd, 10); 
afd.close(); 

從對方如果MediaPlayer的是一個必須有你可能會考慮方法setNextMediaPlayer 。這樣的想法是初始化幾個MediaPlayers同一個文件(什麼亂七八糟的),並設定他們在一個巧妙的方法。

+0

只有5秒長的音頻 – 2016-08-23 12:46:11