我正在为 android 构建一个应用程序,它是必要的,在队列播放器中播放 pcm 数据作为 float 。据我所知,这是不可能的。 description 说:



有没有机会通过opensl es(1.0.1)获得这项工作,或者是否有适用于android ndk的opensl es的替代方案?

最佳答案

您可以将您的浮点波形转换为有符号的 16 位并将其提供给 OpenSL。

由于您需要访问 wave 数据才能将其提供给 OpenSL,因此在运行时进行转换应该是直接的——没有太多开销。

OpenSL 要求内存位置保持有效,直到不再需要它。所以你可以使用一个中间缓冲区来转换它并重新使用它。

我就是这样做的。事实上,我只使用一个流并在软件中进行所有源混合。

10-08 00:08