只播放一次声音

时间:2014-10-14 16:32:21

标签: android audio notifications android-mediaplayer

我试图发出一次警报声:

    Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

    final MediaPlayer mMediaPlayer = new MediaPlayer();
    mMediaPlayer.setDataSource(ctx, notification);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
    mMediaPlayer.prepare();
    mMediaPlayer.setLooping(false);

    mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        public void onPrepared(MediaPlayer arg0) {
            mMediaPlayer.seekTo(0);
            mMediaPlayer.start();
        }
    });

但声音无休止地播放,尽管' setLooping'设置为false。 我还能做些什么来使声音不循环?

1 个答案:

答案 0 :(得分:2)

电话:

mMediaPlayer.prepare();

是对文件的阻塞调用,所以你真的不需要监听器,你只需要调用:

mMediaPlayer.start();

就在它之后。 它也从0开始,所以你不需要:

mMediaPlayer.seekTo(0);

至于无休止的游戏,你可以在这里找到解释和解决方案:

android mediaplayer loops forever on ICS