C言語ないしDXライブラリの関数でマイクがミュート状態か否かを取得できる関数は存在しますか?
調べても音量操作等しかなかったため、ここで質問させていただきました
関数名や使い方、関数の説明がされているサイトをご教示ください
マイクのミュート状態
Re: マイクのミュート状態
環境はWindows全般、visualC++2017です
Re: マイクのミュート状態
追記:
もし難しいようでしたら無いと言ってくれるだけでもありがたいのですが...
もし難しいようでしたら無いと言ってくれるだけでもありがたいのですが...
Re: マイクのミュート状態
Bullさんありがとうございます。
ただ以下サイトはスピーカーのミュート状態だと思われます。
スピーカーはそれなりに見つかるのですがマイクはなかなかなくて...
ただ以下サイトはスピーカーのミュート状態だと思われます。
スピーカーはそれなりに見つかるのですがマイクはなかなかなくて...
Re: マイクのミュート状態
そのページにあるリンクをたどった先でMMDeviceに少しだけ触れています。
Vista以降はマルチメディア関数に替わりMMDeviceが使われるようです。
英文のサイトですが、Audio Endpoint Devices (Windows)はどうでしょうか。
Vista以降はマルチメディア関数に替わりMMDeviceが使われるようです。
英文のサイトですが、Audio Endpoint Devices (Windows)はどうでしょうか。
Re: マイクのミュート状態
No.4のリンク先にあるサンプルコードの中の
eRender
を
eCapture
に変更すればマイク入力(既定の録音デバイス)のミュート状態を取得できました。
eRender
を
eCapture
に変更すればマイク入力(既定の録音デバイス)のミュート状態を取得できました。
Re: マイクのミュート状態
確認不足でした
すみません
サンプルコードからのミュート取得関数にへの変換に苦しんでます
初心者なもので少し時間がかかりそうです
まだ動くかどうかの確認は行えてませんが仮にこのスレッドは解決とします
ありがとうございました(__)
コードができ次第ここに貼ろうと思います
(その時にスレッドに解決を付けます)
すみません
サンプルコードからのミュート取得関数にへの変換に苦しんでます
初心者なもので少し時間がかかりそうです
まだ動くかどうかの確認は行えてませんが仮にこのスレッドは解決とします
ありがとうございました(__)
コードができ次第ここに貼ろうと思います
(その時にスレッドに解決を付けます)
Re: マイクのミュート状態
遅くなりましたが、一応完成したのでここに貼っておきます
bool GetMuteFlag() {
HRESULT hr;
HRESULT mute;
BOOL muted = false;
CoInitialize(NULL);
IMMDeviceEnumerator *deviceEnumerator = NULL;
hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_INPROC_SERVER, __uuidof(IMMDeviceEnumerator), (LPVOID *)&deviceEnumerator);
IMMDevice *defaultDevice = NULL;
//hr = deviceEnumerator->GetDefaultAudioEndpoint(eRender, eConsole, &defaultDevice);
hr = deviceEnumerator->GetDefaultAudioEndpoint(eCapture, eConsole, &defaultDevice);
deviceEnumerator->Release();
deviceEnumerator = NULL;
IAudioEndpointVolume *endpointVolume = NULL;
hr = defaultDevice->Activate(__uuidof(IAudioEndpointVolume), CLSCTX_INPROC_SERVER, NULL, (LPVOID *)&endpointVolume);
mute = endpointVolume->GetMute(&muted);
//endpointVolume->SetMute(TRUE, NULL);
endpointVolume->Release();
CoUninitialize();
return muted;
}
Re: マイクのミュート状態
//マイクのミュートフラグを取得する
bool GetMuteFlag() {
HRESULT hr;
HRESULT mute;
BOOL muted = false;
CoInitialize(NULL);
IMMDeviceEnumerator *deviceEnumerator = NULL;
hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_INPROC_SERVER, __uuidof(IMMDeviceEnumerator), (LPVOID *)&deviceEnumerator);
IMMDevice *defaultDevice = NULL;
//hr = deviceEnumerator->GetDefaultAudioEndpoint(eRender, eConsole, &defaultDevice);
hr = deviceEnumerator->GetDefaultAudioEndpoint(eCapture, eConsole, &defaultDevice);
deviceEnumerator->Release();
deviceEnumerator = NULL;
IAudioEndpointVolume *endpointVolume = NULL;
hr = defaultDevice->Activate(__uuidof(IAudioEndpointVolume), CLSCTX_INPROC_SERVER, NULL, (LPVOID *)&endpointVolume);
mute = endpointVolume->GetMute(&muted);
//endpointVolume->SetMute(TRUE, NULL);
endpointVolume->Release();
CoUninitialize();
return muted;
}