Tag: opensl

Android上的低延迟audio播放

我目前正试图最小化一个简单的应用程序的audio延迟: 我在PC上有一个video,我通过RTP将video的audio传输到移动客户端。 使用非常相似的缓冲algorithm,我可以在iOS上实现90毫秒的延迟,但在Android上可达到±180毫秒。 我猜测这种差异源于Android上众所周知的延迟问题 。 然而,在阅读了一下之后, 我发现了这篇文章 ,里面写道: 低延迟audio从某些设备的Android 4.1 / 4.2版本开始可用。 低延迟audio可以使用libpd(Android的Pure Data library)来实现 。 我有两个问题,直接关系到那两个陈述: 我在哪里可以find有关Jellybean中新的低延迟audio的更多信息? 这是我能find的所有东西,但缺乏具体的信息 。 如果这些变化对我来说是透明的,还是有一些新的类/ API调用,我应该为我注意到我的应用程序中的任何变化? 我正在使用AudioTrack API,我甚至不知道是否应该从这种改进中获益,或者我应该考虑用于audio播放的其他机制。 我应该看看使用libpd吗? 在我看来,这是我获得较低延迟的唯一机会,但是由于我一直认为PD是一个audio合成实用程序,它是否真的适合于从networkingstream中抓取帧并播放它的项目? 我没有真正做综合。 我跟着错误的线索? 另外还有一点需要注意的是,在有人提到OpenSL ES之前, 这篇文章明确表示,不应该期望延迟的改进。 “由于OpenSL ES是一个本地C API,调用OpenSL ES的非Dalvik应用程序线程没有Dalvik相关的开销,例如垃圾收集暂停,但除此之外,使用OpenSL ES没有额外的性能优势。特别是使用OpenSL ES不会导致比平台通常提供的更低的audio延迟,更高的调度优先级等。

适用于Android的OpenSL ES教程

我一直在尝试使用OpenSL ES库来提供用于使用android 2.3进行原生audio的工作,但是看起来头文件和规范的600页pdf是唯一可用的文档。 我应该在哪里查找示例,教程或function的简要概述?