静音一个音频通道

时间:2015-01-19 22:01:48

标签: c++ audio wav waveform

我正在以浮动的形式处理音频数据。

我想知道是否有一种方法可以通过简单的命令将通道(左侧或右侧)静音,就像将每个第二个浮点数设置为0左右一样。 : - )

谢谢。

1 个答案:

答案 0 :(得分:1)

它(完全)依赖于数据编码的形式。

如果(并且几乎 if)它被编码为通道交错的原始样本,那么是的,您可以通过用零替换其样本来静音通道。

然而,这种格式有很多替代品。仅举一个例子,您可以将L + R作为一组样本发送,将L-R作为另一组样本发送。在这种情况下,您需要从数据中解码通道(L + R + LR => L,L + R - L - R => R),将一个通道的样本归零,然后将结果重新组合成相同的格式。

当然,很多格式都比这复杂得多。对于单个通道的编码,像MP3这样的压缩要复杂得多,允许你单独编码通道,或者像和和差一样(通常会节省一些空间)。