我的应用程序使用ALSA通过各种渠道播放原始PCM音频数据。我正在使用snd_pcm_open()分配新的音频通道,然后通过snd_pcm_hw_params_xxx()调用设置PCM格式,最后使用snd_pcm_writei()API将原始PCM音频数据提供给ALSA。
到目前为止,这一切都正常,但我没有找到任何方法告诉ALSA减少以上述方式分配的声道的音量。当然,我可以手动将音量缩放应用到PCM数据,然后通过snd_pcm_writei()将其发送到ALSA,但是ALSA真的没办法自己做吗?
答案 0 :(得分:2)
您可以通过混合器:
amixer cset name='Headphone Playback Volume' 98%,100%
要获取名称值,请检查alsamixer,在每个名称后附加“播放音量”。
并通过alsamixer:
键盘z左声道减小。
q左增加。
和
c是右减。
e是正确的增加
答案 1 :(得分:1)
ALSA没有这样的功能。
您必须自己进行缩放,或者使用像PulseAudio这样的声音服务器。