-2

我使用 C 语言为专有的实时操作系统 (RTOS) 开发了同步音频接口 (SAI) 驱动程序。我的驱动器配置为向放大器输出左右声道数据 (I2S)。但是,由于连接的放大器是单声道的,它只向扬声器输出左声道或右声道音频数据。现在,我有一个立体声 PCM 16 位音频数据文件,我想在我的应用程序中以某种方式混合左声道和右声道音频数据,并将其发送到 SAI 驱动程序中的左声道或右声道。通过这种方式,我将能够在连接到单声道放大器的扬声器上将组合的立体声音频数据作为单声道播放。

谁能建议我最好的解决方案是什么?

4

1 回答 1

0

正如评论中所说,在单声道中混合两个立体声通道的常用方法是将每个通道的样本除以 2 并将它们相加。

C中的示例如下:

int left_channel_sample, right_channel_sample;
int mono_channel = (left_channel_sample / 2) + ( right_channel_sample / 2);

您提到了您编写的一些驱动程序,对其进行了修改或添加了一些新功能。鉴于您的问题一团糟,真的无法提供更多帮助...

于 2020-05-14T09:32:44.110 回答