ALSA:在播放声音时在 C 代码中使用插件
ALSA: Use plugin in c code while playing sound
我正在播放一个带有一些 c 代码的 wav 声音文件,例如 this。它使用所有 API:
snd_pcm_*
我想使用均衡器插件:
libasound_module_ctl_equal.so, libasound_module_pcm_equal.so
发现于 "libasound2-plugin-equal"
如何从 C 代码集成和调用 Alsa 插件?
你需要让它成为 alsa 链的一部分,例如在 ~/.asoundrc add
pcm.plugequal {
type equal;
slave.pcm "plughw:0,0";
}
pcm.!default {
type plug;
slave.pcm plugequal;
}
可以使用命令播放声音文件
aplay some.wav
对于 Ctl 设备,您可以在 ~/.asoundrc 中添加以下内容
ctl.!default {
type equal;
}
你可以打电话
混合器
答案比我想象的要简单:
snd_pcm_open(&pcm_handle, "equal", SND_PCM_STREAM_PLAYBACK, 0) < 0);
您可以使用正确的默认文件集将插件名称传递给 snd_pcm_open。
我正在播放一个带有一些 c 代码的 wav 声音文件,例如 this。它使用所有 API:
snd_pcm_*
我想使用均衡器插件:
libasound_module_ctl_equal.so, libasound_module_pcm_equal.so
发现于 "libasound2-plugin-equal"
如何从 C 代码集成和调用 Alsa 插件?
你需要让它成为 alsa 链的一部分,例如在 ~/.asoundrc add
pcm.plugequal {
type equal;
slave.pcm "plughw:0,0";
}
pcm.!default {
type plug;
slave.pcm plugequal;
}
可以使用命令播放声音文件
aplay some.wav
对于 Ctl 设备,您可以在 ~/.asoundrc 中添加以下内容
ctl.!default {
type equal;
}
你可以打电话 混合器
答案比我想象的要简单:
snd_pcm_open(&pcm_handle, "equal", SND_PCM_STREAM_PLAYBACK, 0) < 0);
您可以使用正确的默认文件集将插件名称传递给 snd_pcm_open。