我在运行Android 4.4.2版的设备上遇到MediaPlayer问题。
情况: 我想运行一次MediaPlayer,然后在onCompletion中决定是否要再次播放声音。
问题: * mediaPlayer一直在播放 * onCompletion永远不会被调用 *调用release并将mediaPlayer设置为null不会阻止它
我已经读过,4.4安卓版本中有一个错误。 (https://code.google.com/p/android/issues/detail?id=59185)有人知道,如果这被纠正了吗?还有其他选择吗?
非常欢迎任何想法,建议和答案!
以下是我的一些代码:
public void start(){
Uri uri = getRingtoneUri(this);
try{
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(this, notificationSound);
mediaPlayer = MediaPlayer.create(this, notificationSound);
mediaPlayer.setLooping(false);
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(this);
}catch(IOException e){
log("onStartCommand", "notification Sound could not be loaded: ", e);
}
}
public void onCompletion(MediaPlayer mp) {
log("onComltion", "stop: " + stop);
// do something
}
public void stop(){
mediaPlayer.release();
mediaPlayer = null;
}