在 C 中使用 ALSA 以不同的音量播放多个 wav 文件

Posted

技术标签:

【中文标题】在 C 中使用 ALSA 以不同的音量播放多个 wav 文件【英文标题】:Playing multiple wav files using ALSA in C with different volumes 【发布时间】:2013-01-20 17:54:47 【问题描述】:

我需要使用 ALSA 库 C 接口播放超过 2 个 wav 文件。每个文件应该以不同的音量播放,但应该可以同时播放。我在带有 sgtl5000 设备的板上使用嵌入式 linux。我只有一个播放设备条目作为 pcm0p。请让我知道如何以不同的音量一起播放多种声音。如果您需要更多详细信息,请告诉我。 提前致谢

【问题讨论】:

【参考方案1】:

如果 ALSA 库已使用 dmix 插件编译,只需为每个文件打开名为 plug:dmix 的设备。

【讨论】:

如果不是(或者无法重新编译 alsa),我对this 问题的回答概述了软件混合的通用方法。 您好,感谢您的快速回复。我可以为每个文件打开设备“plug:dmix”,并且可以同时播放多个声音。有没有办法在 ALSA 中设置单独播放每个文件的音量(同时播放它们)? 没有为此预定义的插件。只需在将样本写入设备时更改样本即可。

以上是关于在 C 中使用 ALSA 以不同的音量播放多个 wav 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Alsa 库更改扬声器的音量?

如何使用 C# 使用 ALSA 在 Linux 中获取和设置音量?

从 C 代码设置 ALSA 主音量

从 C 代码中以 dB 为单位设置 ALSA 主音量

需要 ALSA 教程

如何配置不同的 ALSA 默认值以通过一台设备捕获并通过另一台设备播放?