AudioManager 向死线程上的处理程序发送消息?

2024-01-04

我正在尝试以编程方式将音量提高到STREAM_MUSIC流的最大值,但我有一个“向死线程上的处理程序发送消息”当我这样做时出现问题。另外,它似乎不会 100% 地提高音量,尽管当我收到此错误时,它大多数时候都会提高音量。

代码是:

System.out.println("Maximum volume for this stream is: "+maxstreamvol+" and it used to be set to: "+currentvol);     
final AudioManager am = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC, maxstreamvol, AudioManager.FLAG_SHOW_UI);
am.setStreamSolo(AudioManager.STREAM_MUSIC, true);
System.out.println("Volume Raised!"); 

谷歌搜索后,似乎这个错误与多线程情况有关......此时的代码应该在 UI 线程上运行。

事实上,我什至用以下内容包围它:

runOnUiThread(new Runnable() {

    public void run() {
        // code_goes_here
    }
});

并且,这产生了同样的错误。我看到的错误是这样的:

I/System.out(24949): Maximum volume for this stream is: 15 and it used to be set to: 0
W/MessageQueue(  490): Handler (android.media.AudioManager$FocusEventHandlerDelegate$1) {42b52f28} sending message to a Handler on a dead thread
W/MessageQueue(  490): java.lang.RuntimeException: Handler (android.media.AudioManager$FocusEventHandlerDelegate$1) {42b52f28} sending message to a Handler on a dead thread
W/MessageQueue(  490):  at android.os.MessageQueue.enqueueMessage(MessageQueue.java:294)
W/MessageQueue(  490):  at android.os.Handler.enqueueMessage(Handler.java:618)
W/MessageQueue(  490):  at android.os.Handler.sendMessageAtTime(Handler.java:587)
W/MessageQueue(  490):  at android.os.Handler.sendMessageDelayed(Handler.java:558)
W/MessageQueue(  490):  at android.os.Handler.sendMessage(Handler.java:495)
W/MessageQueue(  490):  at android.media.AudioManager$1.dispatchAudioFocusChange(AudioManager.java:1894)
W/MessageQueue(  490):  at android.media.IAudioFocusDispatcher$Stub.onTransact(IAudioFocusDispatcher.java:57)
W/MessageQueue(  490):  at android.os.Binder.execTransact(Binder.java:351)
W/MessageQueue(  490):  at dalvik.system.NativeStart.run(Native Method)
I/System.out(24949): Volume Raised!

有人知道这里发生了什么事吗?


您的问题可能与此线程中报告的问题有关 -onPostExecute 未在 AsyncTask 中调用(处理程序运行时异常) https://stackoverflow.com/questions/4280330/onpostexecute-not-being-called-in-asynctask-handler-runtime-exception

音频焦点更改的显示正在触发 android 无法完成的 UI 事件。目前尚不清楚为什么会出现这种情况。也许音频管理器是在一个上下文中获得的,而显示音量的 toast 在另一个上下文中执行?一个快速而肮脏的更改是将标志交换为 FLAG_VIBRATE 并检查这是否会产生影响。这会将问题范围缩小到 UI 更新,然后您就可以进行处理。

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

AudioManager 向死线程上的处理程序发送消息? 的相关文章

  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • 在旋转时从错误的资源文件夹中提取可绘制对象

    在这里拉我的头发 因此 我正在使用一个具有多种类型的可绘制对象的应用程序 并且它们的结构如下 res Portrait resources drawable mdpi drawable hdpi drawable xhdpi Landsca
  • 如何使用 Maven 打包并运行具有依赖项的简单命令行应用程序?

    我对 java 和 Maven 都是全新的 所以这可能非常简单 如果我遵循maven2hello world此处的说明 http maven apache org guides getting started maven in Five m
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • 在 React Native 中调试应用程序崩溃

    我是 React Native 新手 我正在尝试安装 React Native Facebook SDK 以便我可以使用我的应用程序进行 Facebook 登录 我按照此处列出的步骤操作 https tylermcginnis com in
  • 普罗米修斯指标 - 未找到

    我有 Spring Boot 应用程序 并且正在使用 vertx 我想监控服务和 jvm 为此我选择了 Prometheus 这是我的监控配置类 Configuration public class MonitoringConfig Bea
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • 编辑文件名在 JComboBox 中的显示方式,同时保持对文件的访问

    我对 Java 很陌生 对堆栈溢出也很陌生 我正在尝试利用 JMF API 创建一个用 Java 编码的简单媒体播放器 到目前为止 我已经能够设置一个简单的队列 播放列表来使用JComboBox called playListHolder
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • Netty:阻止调用以获取连接的服务器通道?

    呼吁ServerBootstrap bind 返回一个Channel但这不是在Connected状态 因此不能用于写入客户端 Netty 文档中的所有示例都显示写入Channel从它的ChannelHandler的事件如channelCon
  • 我可以创建自定义 java.* 包吗?

    我可以创建一个与预定义包同名的自己的包吗在Java中 比如java lang 如果是这样 结果会怎样 这难道不能让我访问该包的受保护的成员 如果不是 是什么阻止我这样做 No java lang被禁止 安全管理器不允许 自定义 类java
  • 如何在android asynctask中使用inputstream作为参数?

    我正在制作一个 Android 应用程序来跟踪股票详细信息 我将通过 csv 雅虎财经 检索数据 据我所知 在android 4 0中 网络连接无法在主线程上完成 因此 我将使用 asynctask 来建立连接 但是 我在参数方面遇到了一些
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 尝试将 SQLite DB 从数据复制到 SD 卡

    我正在使用以下代码 该代码发布在 Stack Overflow 上的某个位置 并根据我的目的进行了修改 try File sd Environment getExternalStorageDirectory File data Enviro
  • Trie 数据结构 - Java [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库或文档 链接提供了在 java 中实现 Trie 数据结构的更多信息 任何帮助都会很棒 Thanks 你可以阅读Java特里树
  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • 如何修复:“无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的”消息? [复制]

    这个问题在这里已经有答案了 我正在尝试使用这个字符串 amountStr amountStr replace replace replace 但我收到一条错误消息 我知道我收到的错误消息是因为我刚刚发布的字符串已过时 所以我想知道该字符串的

随机推荐

  • REG 删除批处理文件中包含引号的值?

    我正在尝试删除我制作的批处理文件中的一些注册表项 我在这里找到了以下代码 它运行良好 直到它击中 REG DELETE for F tokens 1 a in REG QUERY KEY findstr I C VALUE do REG D
  • 寻址 python 对象

    我正在尝试将 ncclient 用于 Python 如果我这样做 它会起作用 from ncclient import manager m manager connect 如果我这样做就会失败 import ncclient m nccli
  • Susy:带有固定排水沟的流体柱?

    我正在尝试构建一个包含流体柱和固定排水沟的 12 列网格 列的宽度会随着窗口大小的调整而改变 但装订线将保持不变 基本上 百分比代表列 em 代表装订线 这对苏西来说可能吗 您可以使用填充作为排水沟 并允许您拥有固定的 间距 同时保持网格的
  • 类路径和构建路径有什么区别

    我对这两个术语感到困惑 另外 我应该如何在 Spring MVC 项目的 src 文件夹下创建文件 当我使用 File 对象创建时 它会在 C SpringSourceTool 中创建文件 我猜这是 ClassPath 对吗 我怎样才能得到
  • 在网站上显示 RTSP

    我有一个指向摄像机的 RTSP 链接 我想将其显示在网页上 由于视频标签不支持 RTSP 并且 google chrome 不再支持 VLC 和 QuickTime 插件 目前使用 RTSP 链接显示此摄像机的最佳方式是什么 如果延迟不是一
  • 该属性应该是我的对象接口的一部分吗?

    我有一个名为 IsSecureConnection 的属性 它是我的对象接口的一部分 这对于接口的大多数实现都是有意义的 但是 在某些实现中 我希望将属性设置为只读 即使所有实现都需要此属性 尽管有时略有不同 我是否应该从对象的接口中省略此
  • 在 cron 中运行 headless selenium 时,出现错误“Pyperclip 无法找到适合您系统的复制/粘贴机制”

    我用Python实现了一个selenium脚本来上传一些图片和内容到Facebook 我将其命名为FBUpload py 当我以这种方式启动它时 它工作得很好 在无头模式下 Xvfb 10 ac python3 home someuser
  • PHPWord:创建从右到左的阿拉伯语 Word 文档

    我正在尝试使用PHPWord http phpword codeplex com 创建一个 Word 文档 其中包含从 MySQL 数据库中提取的动态数据 数据库有 MySQL 字符集 UTF 8 Unicode utf8 MySQL 连接
  • SQL查询按月比较产品销量

    我有一个每月状态数据库视图 我需要根据该视图构建报告 视图中的数据看起来像这样 Category Revenue Yearh Month Bikes 10 000 2008 1 Bikes 12 000 2008 2 Bikes 12 00
  • 在 Nest ElasticSearch 中重复使用计数和搜索查询

    有没有办法通过 Nest 在 ElasticSearch 中重用对 Client Search 和 Client Count 的流畅查询 这是定义搜索流畅定义的代码片段的开头 System Func
  • React 组件不会在更新状态时重新渲染

    我认为你知道更好的解决方案 我有一个包含我的猫的对象数组的文件 var categories id 1 name Faktury selected false id 2 name Telefony selected false id 3 n
  • 无需用户干预即可刷新 linkedin 用户访问令牌

    有没有办法通过应用程序为经过身份验证的用户刷新 Linkedin 访问令牌 没有他的干预 提前致谢 仅当用户当前登录 LinkedIn 并且令牌尚未过期时 该过程才会 无缝 https developer linkedin com blog
  • 如何在没有 old_io 的情况下从字节读取/写入整数值?

    有方便的特点Reader and Writer in std old io使用各种字节序读取 写入整数值的模块 但该模块被声明为已过时 因此我正在尝试找出其他方法来做到这一点 一种方法是读取字节并使用位算术构造结果值 标准库还有其他方法吗
  • Docker 无法识别 Postgresql 数据目录

    我拼命地尝试让我继承的 Docker 项目启动并运行 而 Docker 给我带来了无穷无尽的问题 当尝试启动容器时 我的 Postgresql 容器出现以下错误 FATAL var lib postgresql data is not a
  • 使用 /clr 编译的 C++-CLI 库调试 C 可执行文件

    我正在使用 Visual Studio 2010 来调试主要用 C 编写的应用程序 通常 我可以很好地附加调试器 但当我链接到用 C CLI 编写的库时 我遇到了一些问题 如果我用以下命令编译库 clr标志 我最终必须为此尚未编写的库执行此
  • Caliburn.Micro + Autofac 引导

    我有一个 Caliburn Micro 项目 我正在尝试从其移植 to Autofac http autofac org 我在用着这段代码 https gist github com kavand 6272568 这是代码的更新版本本指南
  • 如何获得相机旋转? (阿鲁科图书馆)

    我一直在尝试了解下载 Aruco 库时包含的 aruco test cpp 程序的输出 输出具有以下格式 22 236 87 86 4296 422 581 78 3856 418 21 228 032 261 347 228 529 Tx
  • Clojure 中对数字进行四舍五入的最佳方法是什么?

    这是个简单的 但无论如何 我认为最好在这里回答这个问题 以便更快 更轻松地参考 这个操作 3 2 产生这个 3 2 我需要一个函数进行向上舍入 这将产生 2 另一个函数进行向下舍入 这将产生 1 您可以进行 java interop 数学
  • React Native FlatList 水平模式根本不起作用

    我正在使用 React Native 0 44 0 并尝试使用卡片样式布局制作水平 FlatList 无论出于何种原因 无论我做什么 我都无法激活水平模式 它似乎总是垂直渲染 这是我正在使用的代码
  • AudioManager 向死线程上的处理程序发送消息?

    我正在尝试以编程方式将音量提高到STREAM MUSIC流的最大值 但我有一个 向死线程上的处理程序发送消息 当我这样做时出现问题 另外 它似乎不会 100 地提高音量 尽管当我收到此错误时 它大多数时候都会提高音量 代码是 System