我不知道这是否是一个常见问题,但我的媒体播放器延迟启动时保持空闲一段时间,也有一段时间它不播放音频。
早些时候,我使用的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