【发布时间】:2015-10-12 05:45:20
【问题描述】:
将 PCM 数据(从 Midi)传递到 OpenSL-ES 我正在寻找一种放大 PCM 信号的方法。在 OpenSL-ES 中,我看到了用于低音增强和均衡的接口,但没有看到用于放大的接口(增益高于最大音量)。
有没有直接的方法?另一种测试方法是在所有频段使用具有相同增益的均衡器(不确定结果),但也许有更直接的方法。
【问题讨论】:
标签: audio-player opensl
将 PCM 数据(从 Midi)传递到 OpenSL-ES 我正在寻找一种放大 PCM 信号的方法。在 OpenSL-ES 中,我看到了用于低音增强和均衡的接口,但没有看到用于放大的接口(增益高于最大音量)。
有没有直接的方法?另一种测试方法是在所有频段使用具有相同增益的均衡器(不确定结果),但也许有更直接的方法。
【问题讨论】:
标签: audio-player opensl
您可以通过乘以 PCM 数组的值来放大 PCM“信号”。但是您应该知道,结果值不应超过或低于可能的值范围(16 位 PCM 为 -32768 到 32767),否则输出中会出现失真。
因此,如果您的 PCM 数据幅度接近最大和最小范围,则无法使用此方法放大音频。改用 Android 中的 LoudnessEnhancer 音效(假设您问的是 Android 相关问题)
值相乘时要小心 - 如果您的 PCM 数组由 32 位整数组成,并且 PCM 格式是 16 位,您应该将 32 位值分成两部分,将它们相乘,然后再次连接它们。
【讨论】: