- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Android 应用中,我使用 Android NDK 通过执行以下操作来播放音乐:
为了避免欠载,我在一个单独的线程中执行前 2 个步骤,提前一点提取和处理声音(它增加了一点延迟,但这对我的应用程序来说不是问题)。该解决方案在我目前测试过的每台设备上都运行良好。
但出于某种原因,当我将我的设备与蓝牙扬声器配对并播放音乐时,在某些设备(如三星 S7 或诺基亚 1)上(但并非在所有设备上),我的声音似乎不足。
这个错误对我来说太随机了,我不知道从哪里开始。它的行为就像蓝牙连接正在使用大量 CPU,因此我的应用程序没有足够的资源来正常运行。
有没有人遇到过类似的事情?我是否应该在我的代码中做任何事情来处理蓝牙连接,以便它不使用 CPU(例如避免音频重采样)?
感谢您的帮助。
最佳答案
Android + 蓝牙音频是一个痛苦的世界。关于蓝牙的主要优点是音频接收器以独立于其他音频设备的速率运行,这就是为什么 native 媒体播放器会根据所连接的音频设备消耗样本的任何速率来执行诸如显示视频之类的操作,本质上是使自己受制于BT 音频设备的时钟。如果您想提高 Android 的速度(即 SystemClock 时基),您需要使用时间拉伸(stretch) AudioTrack。 (这是可以做到的,但驱动程序支持不稳定,并且整个系统稳定性很差)。
首先,您想消除设备本身的问题。您可以将媒体播放器中的 ogg 文件从 S7 或 Nokia 1 毫无问题地播放到蓝牙扬声器吗?如果是这样,那就是您的代码!
在我看来,无论出于何种原因,扬声器消耗样本的速度都快于设备生成样本的速度。基本上检查您的回调以确保每当音频子系统请求更多数据时您实际提供了它。请务必根据正在进行的回调驱动解码管道,而不是系统时钟或任何其他关于计时的假设。
最后,蓝牙音频,至少是 A2DP,与直接流式传输 MP3 不同,在发送音频时需要进行一些处理以重新压缩音频,但这些设备应该有足够的余量,甚至可能是特殊的 DSP .我以前用 1080P 视频同时播放过,然后同时播放两个视频就开始崩溃了!
关于c++ - 在 Android NDK 应用程序上使用蓝牙扬声器的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53871191/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
所以我正在开发一个黑 jack 程序,但我有点卡住了。我会警告大家,我对编程真的很陌生,而且,我正在项目中期......所以有一些松散的结局和未使用的变量,以及一些不必要的逻辑(用于测试),但这就是我
我正在尝试创建一个可用作 OpenGL 测试工具的示例程序。到目前为止,我的那个似乎可以工作,但似乎忽略了通过统一变量 MVPMatrix 传递的 MVP 矩阵。当我添加代码以读回制服并检查它是否确实
感谢您帮助我,这是有关我的代码的部分。 printf("Thank you, now please enter the logic gate"); scanf("%s", &C); if (C ==
public static void ejemplosString(String palabra){ char[] letras = palabra.toCharArray();
所以,我有一个 php 应用程序,通过 cgi 和 nginx 运行。我有一个 .jar 程序,用于在条形码打印机(Zebra)上打印条形码,猜猜看是什么!。 我的 php 应用程序使用 exec()
我遇到的唯一问题是 getAll() 方法,它似乎在 PersonnelController 类中的位置立即运行。我也曾在其他很多地方尝试过,但都没有成功。 setAll() 方法看起来不错,我已经测
我是一名优秀的程序员,十分优秀!