我想播放一个通知声音,我的问题是声音永远循环,它应该只响一次.
我尝试了两种方法:
- 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();
- }
- });
在第二种情况下,我从未看到跟踪“结束,我们应该释放”,音频一遍又一遍地播放.
任何的想法?
非常感谢你
更新:
我尝试了两种设备:
>它永远在ICS 4.0.4的Galaxy Nexus上循环
>它适用于HTC Hero 2.2.1
解决方法
试试这个: