我希望播放通知声音,但我的问题是声音会一直循环播放,而不是只播放一次。
我尝试过两种方法:
notification.sound = Uri.parse("content://media/internal/audio/media/38");
并且
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
mMediaPlayer.setDataSource(this, Uri.parse("content://media/internal/audio/media/38"));
mMediaPlayer.setLooping(false);
mMediaPlayer.prepare();
mMediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
Log.v(Utils.TAG, "onprepared");
mp.start();
}
});
mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.v(Utils.TAG, "end, we should release");
mp.stop();
mp.release();
}
});
在第二种情况下,我从未看到“结束,我们应该释放”的痕迹,音频一遍又一遍地播放。
有什么想法吗?
非常感谢。
更新:
我尝试了两个设备:
在Galaxy Nexus上的ICS 4.0.4上无限循环,
在HTC Hero 2.2.1上正常工作。