Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android音频延迟解决方案_Android_Audio_Android Ndk - Fatal编程技术网

Android音频延迟解决方案

Android音频延迟解决方案,android,audio,android-ndk,Android,Audio,Android Ndk,因此,安卓开发社区中任何有价值的人都知道与安卓低延迟音频相关的问题3434。对于那些不这样做的人,你可以在这里自学 我正在为我的个人项目寻找任何形式的临时解决办法。我听说过通过滚动自己的android版本并修改NDK来向NDK公开私有接口 我所需要的只是一种访问低级别alsa驱动程序的方法,这些驱动程序已经与标准2.2版本打包在一起。我希望能够将PCM直接发送到设备上的音频硬件。我不在乎由此产生的应用程序不会在市场上分发,也不可能与我的设备以外的任何其他设备一起运行 有人有什么有用的想法吗 -格

因此,安卓开发社区中任何有价值的人都知道与安卓低延迟音频相关的问题3434。对于那些不这样做的人,你可以在这里自学

我正在为我的个人项目寻找任何形式的临时解决办法。我听说过通过滚动自己的android版本并修改NDK来向NDK公开私有接口

我所需要的只是一种访问低级别alsa驱动程序的方法,这些驱动程序已经与标准2.2版本打包在一起。我希望能够将PCM直接发送到设备上的音频硬件。我不在乎由此产生的应用程序不会在市场上分发,也不可能与我的设备以外的任何其他设备一起运行

有人有什么有用的想法吗

-格里夫


编辑:我应该提到,我知道AudioTrack提供了这一功能,但我想要低得多的延迟——AudioTrack大约300毫秒,我想要大约20-30毫秒。

Griff,这就是问题所在,NDK不会改善已知的延迟问题(甚至有文档记录)。本机代码中的硬件抽象层目前正在增加延迟,因此它不仅仅是关于访问低级驱动程序(顺便说一句,您不应该依赖alsa驱动程序存在)。

很好地涵盖了权衡。TL;DR:NDK给了您一个小的好处,因为线程可以以更高的优先级运行,但是这个好处是没有意义的,因为整个音频系统都是针对Java进行调优的


运行4.1的Galaxy Nexus可以获得相当接近30毫秒的输出延迟

嘎。我希望情况不是这样。事实上,我曾有机会在GDC 2011上与Android人员交谈,显然这不完全是一个硬件问题,而是一个不容易解决的架构问题。请看@Ian Ni Lewis的评论-4.1I的情况正在好转,我预测不会有架构解决方案,由于谷歌对这些冒充智能手机的数据挖掘设备的实际性能漠不关心。太好了,所以一个特定的硬件设备可以工作,但只能稍微好一点;这正成为一场零和游戏。