在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问题)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)