マイクのミュート状態

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
にこよん
記事: 113
登録日時: 7年前
住所: 大阪府
連絡を取る:

マイクのミュート状態

#1

投稿記事 by にこよん » 6年前

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

関数名や使い方、関数の説明がされているサイトをご教示ください
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

アバター
にこよん
記事: 113
登録日時: 7年前
住所: 大阪府
連絡を取る:

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

#2

投稿記事 by にこよん » 6年前

環境はWindows全般、visualC++2017です
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

アバター
にこよん
記事: 113
登録日時: 7年前
住所: 大阪府
連絡を取る:

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

#3

投稿記事 by にこよん » 6年前

追記:
もし難しいようでしたら無いと言ってくれるだけでもありがたいのですが...
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

Bull
記事: 149
登録日時: 9年前

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

#4

投稿記事 by Bull » 6年前

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

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

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

アバター
にこよん
記事: 113
登録日時: 7年前
住所: 大阪府
連絡を取る:

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

#5

投稿記事 by にこよん » 6年前

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

ただ以下サイトはスピーカーのミュート状態だと思われます。
スピーカーはそれなりに見つかるのですがマイクはなかなかなくて...
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

Bull
記事: 149
登録日時: 9年前

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

#6

投稿記事 by Bull » 6年前

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

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

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

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

#7

投稿記事 by ISLe » 6年前

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

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

アバター
にこよん
記事: 113
登録日時: 7年前
住所: 大阪府
連絡を取る:

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

#8

投稿記事 by にこよん » 6年前

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

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

コードができ次第ここに貼ろうと思います
(その時にスレッドに解決を付けます)
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

アバター
にこよん
記事: 113
登録日時: 7年前
住所: 大阪府
連絡を取る:

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;
}
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

アバター
にこよん
記事: 113
登録日時: 7年前
住所: 大阪府
連絡を取る:

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;
}
最近は東方風アクションゲームを少しずつ作ってる人です
東方翠風燐FreeDownload⇒http://dxlib.o.oo7.jp/cgi/patio/read.cgi?no=212

返信

“C言語何でも質問掲示板” へ戻る