我正在尝试只播放一次闹钟声音:
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,但声音会无休止地播放。 我还能做什么来让声音不循环播放?
最佳答案
通话:
mMediaPlayer.prepare();
是对文件的阻塞调用,因此您实际上不需要监听器,您只需调用:
mMediaPlayer.start();
就在它之后。 而且它从时间 0 开始,所以你不需要:
mMediaPlayer.seekTo(0);
关于无限播放,您可以在这里找到解释和解决方案:
关于android - 仅播放一次声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26365768/