在 ALSA 中设置通道音量

Setting channel volume in ALSA

我的应用程序使用 ALSA 通过各种渠道播放原始 PCM 音频数据。我正在使用 snd_pcm_open() 分配一个新的音频通道,然后通过 snd_pcm_hw_params_xxx() 调用设置 PCM 格式,最后使用 snd_pcm_writei 将原始 PCM 音频数据提供给 ALSA ()API.

到目前为止一切正常,但我还没有找到任何方法告诉 ALSA 减少以上述方式分配的声道的音量。当然,我可以在通过 snd_pcm_writei() 将 PCM 数据发送到 ALSA 之前手动对 PCM 数据应用音量缩放,但是真的没有办法让 ALSA 自己做这个吗?

ALSA没有这个功能

您必须自己进行缩放,或者使用像 PulseAudio 这样的声音服务器。

您可以通过 amixer:

amixer cset name='Headphone Playback Volume' 98%,100%

要获取名称值 - 检查 alsamixer,将 'Playback Volume' 附加到每个。

并通过 alsamixer:

键盘 z 左声道减小。

q左增

c为右减

e是对的增加