我试图发出一次警报声:
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。 我还能做些什么来使声音不循环?
答案 0 :(得分:2)
电话:
mMediaPlayer.prepare();
是对文件的阻塞调用,所以你真的不需要监听器,你只需要调用:
mMediaPlayer.start();
就在它之后。 它也从0开始,所以你不需要:
mMediaPlayer.seekTo(0);
至于无休止的游戏,你可以在这里找到解释和解决方案: