teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

URL訂正

2019/05/09 00:58

投稿

hihijiji
hihijiji

スコア4152

answer CHANGED
@@ -1,4 +1,4 @@
1
- [NAudio](https://github.com/naudio/NAudio) の [WaveInEventクラス](http://https://github.com/naudio/NAudio/blob/master/NAudio/Wave/WaveInputs/WaveInEvent.cs)を利用すれば、
1
+ [NAudio](https://github.com/naudio/NAudio) の [WaveInEventクラス](https://github.com/naudio/NAudio/blob/master/NAudio/Wave/WaveInputs/WaveInEvent.cs)を利用すれば、
2
2
  ~~
3
3
  DeviceCount 静的メソッドで入力デバイス数を取得して、
4
4
  GetCapabilities 静的メソッドでデバイス番号に対する機能を取得できるみたいです。

1

もう少しましな方法

2019/05/09 00:58

投稿

hihijiji
hihijiji

スコア4152

answer CHANGED
@@ -1,4 +1,18 @@
1
1
  [NAudio](https://github.com/naudio/NAudio) の [WaveInEventクラス](http://https://github.com/naudio/NAudio/blob/master/NAudio/Wave/WaveInputs/WaveInEvent.cs)を利用すれば、
2
+ ~~
2
3
  DeviceCount 静的メソッドで入力デバイス数を取得して、
3
4
  GetCapabilities 静的メソッドでデバイス番号に対する機能を取得できるみたいです。
4
- 入力デバイスはマイクとは限りませんが、多分取得した機能から識別できるかと思います。
5
+ 入力デバイスはマイクとは限りませんが、多分取得した機能から識別できるかと思います。~~
6
+ NAudio使うならこっちのほうがいいですね。
7
+ "マイク"って文字列を使っているのがちょっとカッコ悪いけど
8
+ ``` C#
9
+ using NAudio.CoreAudioApi;
10
+
11
+
12
+
13
+ var mmDevices = new MMDeviceEnumerator();
14
+ var devices = mmDevices.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active);
15
+ var activeMicrophones = devices
16
+ .Where(d => d.FriendlyName.StartsWith("マイク"))
17
+ .Select(d => d.FriendlyName);
18
+ ```