我正在为需要的 android 构建一个应用程序,将队列播放器中的 pcm 数据作为浮点数播放。据我所知,这是不可能的。描述说:
SL_DATAFORMAT_PCM 不允许应用程序将数据的表示形式指定为有符号整数、无符号整数或浮点数。Android 实现假定 8 位数据是无符号整数,而 16 位数据是有符号整数。此外,字段 samplesPerSec 是用词不当,因为实际单位是毫赫兹。这些问题预计将在下一个 OpenSL ES 版本中得到解决,该版本将引入一种新的扩展 PCM 数据格式,允许应用程序明确指定表示,并更正字段名称。由于这将是一种新的数据格式,并且当前的 PCM 数据格式仍然可用(尽管已弃用),因此不需要立即更改您的代码。
有没有机会通过 openssl es (1.0.1) 完成这项工作,或者对于 android ndk 是否有替代 opensl es 的方法?