2010-10-21 87 views
3
  • 如何使用C静音?是否有ALSA函数调用?Linux ALSA /声音API问题 - 你怎么静音?

  • 是否有任何其他函数调用/ API可以使麦克风静音?

  • 我已经写了一些代码来使用ALSA进行音频播放,并且在声音开始播放之前我已经注意到DELAY ...我如何在声音播放时减少DELAY或LATENCY?

X

+0

我也有同样的问题。你有没有想过如何将扬声器和麦克风静音?在我的GUI程序中,我希望有一个通用的“静音”按钮,可以触发扬声器和麦克风的静音 – 2011-08-09 13:52:46

回答

4
#include <alsa/asoundlib.h> 

void SetAlsaMasterMute() 
{ 
    long min, max; 
    snd_mixer_t *handle; 
    snd_mixer_selem_id_t *sid; 
    const char *card = "default"; 
    const char *selem_name = "Master"; 

    snd_mixer_open(&handle, 0); 
    snd_mixer_attach(handle, card); 
    snd_mixer_selem_register(handle, NULL, NULL); 
    snd_mixer_load(handle); 

    snd_mixer_selem_id_alloca(&sid); 
    snd_mixer_selem_id_set_index(sid, 0); 
    snd_mixer_selem_id_set_name(sid, selem_name); 
    snd_mixer_elem_t* elem = snd_mixer_find_selem(handle, sid); 

    if (snd_mixer_selem_has_playback_switch(elem)) { 
     snd_mixer_selem_set_playback_switch_all(elem, 0); 
    } 

    snd_mixer_close(handle); 
} 

引用:here和官方API here