Страницы

Поиск по вопросам

воскресенье, 15 декабря 2019 г.

Как отключить звук в своем приложении в Windows?

#cpp #winapi


В Windows 7 можно управлять громкостью как всей системы в целом, так и каждого процесса
в отдельности. Как можно программным способом отключить звук для текущего процесса?
    


Ответы

Ответ 1



Это легко можно сделать с помощью AudioEndpoint API. Работает, начиная с Windows 7. Здесь можно прочесть, что такое Audio Endpoint Devices. По правде говоря, приложение может иметь не только одну аудио-сессию. Сессии идентифицируются по GUID. Но для простоты положим, что сессия только одна, и передадим GUID_NULL. _COM_SMARTPTR_TYPEDEF(IAudioSessionManager2, __uuidof(IAudioSessionManager2)); bool MuteCurrentProcess() { IAudioSessionManager2Ptr mgr; CreateSessionManager(&mgr); ISimpleAudioVolumePtr volume; if (SUCCEEDED(mgr->GetSimpleAudioVolume(&GUID_NULL, false, &volume))) { ISimpleAudioVolumePtr vol; volume->QueryInterface(__uuidof(IAudioEndpointVolume), (void**)&vol); if (SUCCEEDED(volume->SetMute(TRUE, 0))) { return true; } } return false; }

Комментариев нет:

Отправить комментарий