在安卓设备上播放 4 通道 16 位 PCM 音频数据



我想在我的安卓应用程序中播放PCM音频数据。网络上有很多例子,但仅适用于单声道,我有 4 个频道(如本问题标题中所述)。

当我设置

AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 48000, AudioFormat.CHANNEL_OUT_QUAD, AudioFormat.ENCODING_PCM_16BIT, bufsize, AudioTrack.MODE_STREAM);

我得到一个非法参数异常,当我切换回CHANNEL_OUT_MONO它工作时。我能做什么?

发生这种情况是因为您需要使用支持 4 声道音频再现的设备。 例如,如果您连接 4 声道 USB 声卡,或使用 HDMI 连接到 5.1 AV 接收器,这应该可以工作。但手机和平板电脑上的常规声音输出仅支持 2 声道(立体声)输出。

否则,您必须首先以某种方式将音频转换为 2 声道。实际过程将取决于它是哪种音频。例如,如果是多轨录音室唱片,您可能需要平移乐器,或者如果是多声道消费者唱片(四重奏声音),那么您可以通过丢弃额外的 2 个声道将其降级为立体声,或者尝试将它们混入主立体声声道,但随后存在引入梳状过滤的风险。

最新更新