Android检测实际正在播放哪个铃声(Ringtone.isPlaying问题)

Android检测实际正在播放哪个铃声(Ringtone.isPlaying问题),第1张

概述在Android上,尝试找出正在播放的铃声时遇到了问题(我没有尝试检测默认铃声,但由于用户为特定铃声设置了特定铃声,实际播放的铃声可能有所不同联系).我正在使用Ringtone.isPlaying()函数,因为我(成功地)从RingtoneManager中循环了所有可用的铃声.但是,它们都没有对Ringtone.isPlayi

在Android上,尝试找出正在播放的铃声时遇到了问题(我没有尝试检测默认铃声,但由于用户为特定铃声设置了特定铃声,实际播放的铃声可能有所不同联系).

我正在使用ringtone.isPlaying()函数,因为我(成功地)从ringtoneManager中循环了所有可用的铃声.但是,它们都没有对ringtone.isPlaying()返回true!有人知道我在做什么错吗?这是在铃声播放时肯定正在运行的代码示例:

ringtoneManager rm = new ringtoneManager(this); // 'this' is my activity (actually a Service in my case)if (rm != null){    Cursor cursor = rm.getCursor();    cursor.movetoFirst();     for (int i = 0; ; i++)     {            ringtone ringtone = rm.getringtone(i);  // get the ring tone at this position in the Cursor            if (ringtone == null)            break;        else if (ringtone.isPlaying() == true)                return (ringtone.getTitle(this));   // *should* return Title of the playing ringtone    }    return "Failed AGAIN!"; // always ends up here}

解决方法:

如果查看source of Ringtone,则可以看到isPlaying()方法仅关心该铃声的特定实例.

从ringtoneManager()调用getringtone()时,它将创建一个新的ringtone对象(source).因此,这将不同于在有人呼叫时用于播放声音的ringtone对象(如果使用ringtone对象),那么在您的情况下isPlaying()始终会返回false.

仅当您在特定的ringtone对象上调用play()时,isPlaying()才会返回true.

当每个应用程序创建自己的MediaPlayer对象时,我认为您无法监视其他应用程序当前正在播放的声音.

总结

以上是内存溢出为你收集整理的Android检测实际正在播放哪个铃声(Ringtone.isPlaying问题)全部内容,希望文章能够帮你解决Android检测实际正在播放哪个铃声(Ringtone.isPlaying问题)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1082377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存