Audio Linux ALSA/声音API问题-如何静音?

Audio Linux ALSA/声音API问题-如何静音?,audio,alsa,Audio,Alsa,如何使用C使声音静音?是否存在ALSA函数调用 是否有其他可以使麦克风静音的函数调用/API 我已经写了一些代码来使用ALSA进行音频播放,我注意到在声音开始播放之前有一个延迟。。。如何减少声音播放的延迟或延迟 x#包含和官方api。我也有同样的问题。你知道如何使扬声器和麦克风静音了吗?在我的GUI程序中,我希望有一个通用的“静音”按钮,可以触发扬声器和麦克风的静音 #include <alsa/asoundlib.h> void SetAlsaMasterMute() {

如何使用C使声音静音?是否存在ALSA函数调用

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

  • 我已经写了一些代码来使用ALSA进行音频播放,我注意到在声音开始播放之前有一个延迟。。。如何减少声音播放的延迟或延迟


  • x

    #包含和官方api。

    我也有同样的问题。你知道如何使扬声器和麦克风静音了吗?在我的GUI程序中,我希望有一个通用的“静音”按钮,可以触发扬声器和麦克风的静音
    #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);
    }