ALSA:在播放声音时使用c代码插件

问题描述:

我正在播放带有一些c代码的wav声音文件,例如this。它使用所有API:ALSA:在播放声音时使用c代码插件

snd_pcm_* 

我想用均衡器插件:

libasound_module_ctl_equal.so, libasound_module_pcm_equal.so 

在“的libasound2-插件平等”

发现如何集成和调用艾莎插件从C代码?

答案是简单的,我想象:

snd_pcm_open(&pcm_handle, "equal", SND_PCM_STREAM_PLAYBACK, 0) < 0); 

您可以通过插件的名称与正确的设置默认文件来snd_pcm_open。

你需要使它ALSA链例如部分在〜/ .asoundrc添加

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; 
} 

您只需调用 alsamixer中

+0

我想在C代码中做到这一点。不在命令行中。 – gregoiregentil