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

2023-12-09

在 Android 上,我在尝试找出实际正在播放的铃声时遇到问题(我不是在尝试检测默认铃声,而是实际播放的铃声,因为由于用户为特定铃声设置了特定铃声,因此实际播放的铃声可能会有所不同)接触)。

当我循环浏览(成功)RingtoneManager 中的所有可用铃声时,我正在使用 Ringtone.isPlaying() 函数。然而,它们都没有返回 true 到 Ringtone.isPlaying()!有人知道我做错了什么吗?这是在铃声播放时肯定正在运行的代码示例:

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
}

如果你看一下来源Ringtone你可以看到isPlaying()方法只关心该特定实例Ringtone.

你打电话时getRingtone() from RingtoneManager()它创造了一个新的Ringtone目的 (source)。所以这不会是一样的Ringtone用于在有人呼叫时播放声音的对象(如果Ringtone对象就是用来做到这一点的)所以isPlaying()总会回来的false在你的情况下。

isPlaying()只会回来true如果你打过电话play()就那个具体的Ringtone object.

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 检测实际正在播放的铃声(Ringtone.isPlaying 问题) 的相关文章

随机推荐

  • 如何将位图旋转 90 度

    android中有一个声明canvas drawBitmap visiblePage 0 0 paint 当我添加canvas rotate 90 没有效果 但如果我写 canvas rotate 90 canvas drawBitmap
  • 如何使用 java spring 进行encodeURI/decodeURI?

    我有一个用 java spring 制作的简单 api 它接收文本并将其保存在数据库中 以及一个 javascript 中的应用程序 用于格式化文本并将其发送到 api 我有多种语言的文本 中文 日文 并且我遇到了特殊字符的问题 所以我在
  • 如何使用win32com在python中打开写入保留的excel文件?

    我正在尝试使用 python 中的 win32com 打开写保护的 ms excel 2007 文件 我知道密码 我可以通过用户在 Excel 对话框中输入密码来打开它 我希望能够在没有任何用户交互的情况下打开该文件 我已经尝试了以下方法
  • 加密 as3 flash .swf

    我正在尝试保护我的 as3 swf flash 文件代码免遭反编译 但我不能在商业编译器上花费 如何免费加密我的 swf 我残酷诚实的回答 甚至不要尝试 如果某人有能力使用您的应用程序中的资源或代码 那么他们将具备反编译您的 SWF 并获得
  • 在 Windows 10 中使用 JDK 16 在 Netbeans 12.4 中安装 C/C++ 插件时出错

    我想在 Windows 10 中使用 JDK 16 在 Netbeans 12 4 中安装 C C 插件 我在安装 C C 插件期间遇到错误 窗户 10网豆 12 4JDK 16 0 1 我附上照片 您遇到此问题是因为 NetBeans 正
  • wpf 进度条在上次 ProgressChanged 时未更新

    我制作了一些 UI 其中有 ProgressBar 使用MVVM模式 XAML
  • 更改 C++ 中 const 变量的值[重复]

    这个问题在这里已经有答案了 我正在尝试更改定义为 int const 的变量的值 如下所示 const int w 10 int wp const cast
  • 如何在C#中将XML转换为Html?

    这是将xml转换为html的最佳方法 目前我正在使用Xpathnavigator和xpathnodeiterator来查询和遍历xml 这工作正常 但我需要将此 xml 转换为 html 并在浏览器中显示它和一些表格 这是实现此目的的最佳方
  • DocuSign REST api 取消分组选项卡

    我需要取消在 草稿 状态下创建的信封中的选项卡的分组 这样 如果我在一页上移动一个 SignHere 选项卡位置 所有其他 SignHere 都不会移动 我执行了 GET 请求来获取选项卡 然后执行 PUT 请求来更新选项卡 通信成功 但选
  • 单击鼠标获取matplotlib绘图python的坐标

    我一直在尝试根据 matplotlib 绘图比例而不是像素获取鼠标 x y 坐标到变量 但它只返回整数分量 例如 0 0 或 1 0 我想返回准确的数字 例如 0 1245 这是我的代码 import matplotlib import T
  • 类似 Instagram 的导航栏 (iOS 7)

    我试图产生同样的效果 就像 Instagram 的标题中那样 我怎样才能做到这一点 我尝试了很多解决方案 Best https github com andreamazz AMScrollingNavbar 但它有一个大问题 它使用 uip
  • Python 中的 MemoryError 钩子?

    有没有一种方法可以全局捕获 MemoryError 异常 以便库可以清除缓存而不是让用户代码看到 MemoryError 我正在用 Python 开发一个内存缓存库 它存储非常大的对象 以至于用户通常希望使用所有可用的 RAM 来简化脚本和
  • 子类化 SimpleCursorAdapter 以包含 ConvertView 以节省内存

    我一直在搜索示例和教程 但我似乎无法理解如何在子类 SimpleCursorAdapter 中处理回收 我知道 对于常规 ArrayAdapter 您可以检查 ConvertView 是否为 null 如果为 null 则从 xml 中膨胀
  • 在 VBA 中使用 FTP

    我编写了 VBA 代码 该代码根据 Excel 数据 Websphere MQ Define Job 为 IBM 主机创建一个包含作业代码的 txt 文件 如果能够通过 FTP 自动将此文件传输到主机 那就太酷了 此时我通过以下方式手动执行
  • 在 iphone webView 中打开 .docx 的代码

    我是 iPhone 新手 我正在尝试在 UIwebView 中打开 docx 文件 我编写了以下代码 NSString urlAddress NSBundle mainBundle pathForResource Arabic litera
  • 为什么有些 PHP 安装有 $_SERVER['SCRIPT_URI'] 而其他安装没有?

    我运行两台 Apache 2 服务器 一个是 PHP5 2 另一个是 PHP5 3 5 3 机器上有什么原因吗 SERVER SCRIPT URI 这个变量从哪里来 它显然是来自 Apache 环境的东西 并且 PHP 手册中没有记录它 然
  • 对 Java 方法签名的完全限定引用

    是什么proper如何在 Java 中编写对方法名称的完全限定引用 Message com sun mail imap IMAPFolder addMessages Message Message com sun mail imap IMA
  • VueJS 手风琴表 - 出现在表之外

    我有一个表 其中使用 ajax 获取数据 我试图创建一个表 其中每行都有一个关联的隐藏行 单击该行可切换隐藏行的显示 隐藏行包含一个手风琴 问题是手风琴变得一团糟并显示在表格底部 而不是显示在它被单击的特定行下方 我的代码如下 table
  • 它将打印什么 console.log(1+ + "2")

    为什么这个 JavaScript 声明 console log 1 2 print 3 作为输出 我不知道为什么它会打印这个 我期望 12 or 字符串前面的操作数将其转换为数字 所以在这里 2 会变成2因此结果将是3 gt 1 2 2 2
  • Android 检测实际正在播放的铃声(Ringtone.isPlaying 问题)

    在 Android 上 我在尝试找出实际正在播放的铃声时遇到问题 我不是在尝试检测默认铃声 而是实际播放的铃声 因为由于用户为特定铃声设置了特定铃声 因此实际播放的铃声可能会有所不同 接触 当我循环浏览 成功 RingtoneManager