在 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是对的增加
我的应用程序使用 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是对的增加