我有一個擴展Service的類,我有一個MediaPlayer來管理我的應用程序的背景音樂。我的媒體播放器沒有「循環」
MediaPlayer player = MediaPlayer.create(this, R.raw.background_music);
player.setLooping(true);
的問題是,它好好嘗試一下「循環」好:我的意思是,當MP3文件結束,有一個沉默的第二前再次啓動。 但是,在MP3文件,其實,有沒有沉默任何第二。
我怎樣才能解決這個問題?
我有一個擴展Service的類,我有一個MediaPlayer來管理我的應用程序的背景音樂。我的媒體播放器沒有「循環」
MediaPlayer player = MediaPlayer.create(this, R.raw.background_music);
player.setLooping(true);
的問題是,它好好嘗試一下「循環」好:我的意思是,當MP3文件結束,有一個沉默的第二前再次啓動。 但是,在MP3文件,其實,有沒有沉默任何第二。
我怎樣才能解決這個問題?
你不能。這個bug已經存在好久了,但他們仍然沒有修復它,它看起來並不像他們打算這樣做,在不遠的未來!
您可以嘗試使用的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同一個文件(什麼亂七八糟的),並設定他們在一個巧妙的方法。
只有5秒長的音頻 – 2016-08-23 12:46:11
我同意bofredo android不支持免提音樂但 – 2013-02-22 11:46:42