我不知道這是否是一個常見問題,但我的媒體播放器延遲啓動時保持空閒一段時間,也有一段時間它不播放音頻。
早些時候,我使用的setDataSource(),但這次我使用創建(),不知道什麼是對這個問題的真正原因........
Android:媒體播放器延遲啓動
僅供參考這是代碼我使用.......
AssetFileDescriptor afd = _context.getResources().openRawResourceFd(this._soundResource.get(this._toBePlayed));
mp = new MediaPlayer();
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
mp.setOnPreparedListener(new OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.reset();
mp.release();
}
});
mp.prepareAsync();
這並不能解決問題:我mp.seekTo(0)在onPrepared這樣固定它。相反,這會阻止主線程。 UI/UX非常糟糕。 – 2017-12-08 06:46:07