【发布时间】:2013-05-10 17:28:43
【问题描述】:
所以基本上我使用 Spinner 小部件并将 RingtoneManager Picker 操作传递给它,然后用户选择他们的铃声。然后我调用 onActivityResult() 并获取铃声的 uri。 最后,我将 uri 传递给另一个活动,在该活动中我设置了一个警报,以便在特定时间后响起。
问题 >>> 当我在第二个活动中获得铃声的 uri 并让 mediaPlayer 播放它时,它......它不会停止。无论我尝试什么。
这是第二个活动和永不停止的媒体播放器。
Uri ringtone;
ringtone = Uri.parse(musixType);
//mMediaPlayer.setDataSource(DisplayNotification.this, ringtone);
mMediaPlayer = MediaPlayer.create(DisplayNotification.this, ringtone);
mMediaPlayer.start();
mMediaPlayer.setVolume(100, 100);
}
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
while (mMediaPlayer != null) {
mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = null;
}
}
});
如何让它停止@.@
编辑: 它不会停止播放的原因可能是它是来自 RingtoneManager 的铃声吗?我不知道为什么这很重要,但我现在正抓着稻草。
编辑: 有没有办法指定 mediaPlayer 运行的特定时间长度并忽略传递给它的数据?
【问题讨论】:
-
尝试在
mMediaPlayer参考上打印isLooping()的值,看看你得到了什么。 -
问题是,它永远不会到达 onCompletionListener() 方法。我不确定,因为它是一个铃声,如果它只是一遍又一遍地重复,但我向 mediaPlayer 发送了一个 uri,所以这不重要..
标签: android android-mediaplayer