4
如何獲得使用NAudio的計算機上所有錄製設備的列表?當你想記錄時,你必須給它一個你想使用的設備的索引,但是沒有辦法知道它是什麼設備。我希望能夠從麥克風,立體聲混音等中選擇。枚舉NAudio中的錄製設備
如何獲得使用NAudio的計算機上所有錄製設備的列表?當你想記錄時,你必須給它一個你想使用的設備的索引,但是沒有辦法知道它是什麼設備。我希望能夠從麥克風,立體聲混音等中選擇。枚舉NAudio中的錄製設備
對於WaveIn,您可以使用靜態WaveIn.GetCapabilities方法。這會給你一個設備名稱,但令人討厭的限制是最多31個字符。我仍在尋找獲取全名的方法(請參閱我的問題here)。
int waveInDevices = WaveIn.DeviceCount;
for (int waveInDevice = 0; waveInDevice < waveInDevices; waveInDevice++)
{
WaveInCapabilities deviceInfo = WaveIn.GetCapabilities(waveInDevice);
Console.WriteLine("Device {0}: {1}, {2} channels", waveInDevice, deviceInfo.ProductName, deviceInfo.Channels);
}
對於WASAPI(Vista和以上),你可以使用MMDeviceEnumerator:
MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
foreach (MMDevice device in enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.All))
{
Console.WriteLine("{0}, {1}", device.FriendlyName, device.State);
}
我傾向於建議WaveIn,因爲它是更廣泛的支持,並允許在錄製的採樣率更大的靈活性。