收听 WaveOutDevice

Listen to WaveOutDevice

选择waveout设备后,我想每秒听一次,以监控其音量。我该怎么做呢?我还没有找到任何关于收听播放设备输出的例子。

int waveOutDevices = WaveOut.DeviceCount;
for (int i = 0; i < waveOutDevices; i++)
{
    WaveOutCapabilities deviceInfo = WaveOut.GetCapabilities(i);
    Console.WriteLine("Device {0}: {1}, {2} channels", i, deviceInfo.ProductName, deviceInfo.Channels);
}

WaveOut API 不支持此功能。如果您使用的是 Vista 或更高版本,您可以使用 WasapiLoopbackCapture 拦截来自任何渲染设备的音频,并且 WASAPI 还支持注册音量通知,这将是我们场景的理想选择。