如何通过MediaPlayer播放一次铃声?

发布于 2024-11-16 22:30:59 字数 220 浏览 9 评论 0原文

即使媒体播放器循环属性设置为 false,我也无法播放铃声一次。看起来此属性已被使用的铃声 URI 覆盖。所以 onCompletion 永远不会被触发。

奇怪的是,如果 URI 对应于通知音,则循环行为将根据 setLooping 进行。在这里效果很好。

那么有没有办法只播放一次铃声呢?

I can't play a ringtone once even if mediaplayer looping property is set to false. It looks like this property was overriden by the ringtone URIused. So onCompletion is never fired.

Curiously, if the URI corresponds to a notification tone, looping behaves according to setLooping. It works well here.

So is there a way to play a ringtone once?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无声情话 2024-11-23 22:30:59

我之前遇到过这个问题,并通过使用 OnSeekCompleteListener 解决了它:

mMediaPlayer.setOnSeekCompleteListener(new OnSeekCompleteListener() {
公共无效onSeekComplete(MediaPlayer mp){
//你的东西
}});

我不知道这是否是解决这个问题的最佳方法,但它对我有用。

编辑:顺便说一句,我使用两个监听器,oncompletionlistener 和 onseekcompletelistener。希望这有帮助!

I faced this problem before and solved it by using OnSeekCompleteListener:

mMediaPlayer.setOnSeekCompleteListener(new OnSeekCompleteListener() {
public void onSeekComplete(MediaPlayer mp) {
//Your stuff
}});

I don't know if it's the best way to solve this, but it worked for me.

Edit: BTW, I use both listeners, oncompletionlistener AND onseekcompletelistener. Hope this helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文