マイクのミュート状態

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: マイクのミュート状態

Re: マイクのミュート状態

#10

by にこよん » 6年前

コード:

//マイクのミュートフラグを取得する
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: マイクのミュート状態

#9

by にこよん » 6年前

遅くなりましたが、一応完成したのでここに貼っておきます

コード:

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: マイクのミュート状態

#8

by にこよん » 6年前

確認不足でした
すみません

サンプルコードからのミュート取得関数にへの変換に苦しんでます
初心者なもので少し時間がかかりそうです
まだ動くかどうかの確認は行えてませんが仮にこのスレッドは解決とします
ありがとうございました(__)

コードができ次第ここに貼ろうと思います
(その時にスレッドに解決を付けます)

Re: マイクのミュート状態

#7

by ISLe » 6年前

No.4のリンク先にあるサンプルコードの中の
eRender

eCapture
に変更すればマイク入力(既定の録音デバイス)のミュート状態を取得できました。

Re: マイクのミュート状態

#6

by Bull » 6年前

そのページにあるリンクをたどった先でMMDeviceに少しだけ触れています。
Vista以降はマルチメディア関数に替わりMMDeviceが使われるようです。

英文のサイトですが、Audio Endpoint Devices (Windows)はどうでしょうか。

Re: マイクのミュート状態

#5

by にこよん » 6年前

Bullさんありがとうございます。

ただ以下サイトはスピーカーのミュート状態だと思われます。
スピーカーはそれなりに見つかるのですがマイクはなかなかなくて...

Re: マイクのミュート状態

#4

by Bull » 6年前

あまり詳しくないのですが、回答がないようなので。

ちょっと検索してみたら以下のページが見付かりました。
内容は確認していませんが、ご参考までに。

Windowsの音量(ミキサー)を制御したい

Re: マイクのミュート状態

#3

by にこよん » 6年前

追記:
もし難しいようでしたら無いと言ってくれるだけでもありがたいのですが...

Re: マイクのミュート状態

#2

by にこよん » 6年前

環境はWindows全般、visualC++2017です

マイクのミュート状態

#1

by にこよん » 6年前

C言語ないしDXライブラリの関数でマイクがミュート状態か否かを取得できる関数は存在しますか?
調べても音量操作等しかなかったため、ここで質問させていただきました

関数名や使い方、関数の説明がされているサイトをご教示ください

ページトップ