如何使用 WASAPI 在 C++ UWP 应用程序上捕获音频?
How to capture audio on c++ UWP app with WASAPI?
我似乎无法在 Internet 上找到任何有关我的问题的教程。
All the simple guide 不适合 UWP。
例如,
要使用 WASAPI 有这些步骤
- 枚举设备
- 捕捉音频
- 回放(渲染)音频
但是枚举步骤,客户端必须调用CoCreateInstance. But from my understanding this function is not support in UWP. Also I failed at Line 30 when following this code.
所以,我试着理解这个,C++ UWP using WASAPI,但是我找不到任何枚举部分,这个项目对我来说非常复杂。
它包括许多其他文件(DeviceState.h、common.h)
而且我未能提取代码来创建我自己的应用程序。
我的问题是如何使用 WASAPI 在 C++ UWP 应用程序上捕获音频?
如果这个问题太白痴,我会把我的问题改成How to enumerate audio device in c++ UWP application?
而我之所以使用WASAPI是因为我想访问存储在Buffer中的数据。
是的,您可以使用 WASAPI 在 UWP 中进行音频捕获,这就是您引用的示例 (https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/WindowsAudioSession) 中所做的。
对于枚举,主要功能是 DeviceInformation::FindAllAsync
使用此选择器 MediaDevice::GetAudioCaptureSelector
它将允许您列出捕获设备。
对于流捕获,您需要的主要功能是
ActivateAudioInterfaceAsync
,如果您只需要使用默认设备,它将允许您从设备 ID(特定设备)或设备 class(渲染或捕获)创建 IAudioClient
。
一旦你有了这个IAudioClient
,你就可以用它来得到一个IAudioClientCapture
,基本上就是你在示例中看到的东西。
我似乎无法在 Internet 上找到任何有关我的问题的教程。
All the simple guide 不适合 UWP。
例如, 要使用 WASAPI 有这些步骤
- 枚举设备
- 捕捉音频
- 回放(渲染)音频
但是枚举步骤,客户端必须调用CoCreateInstance. But from my understanding this function is not support in UWP. Also I failed at Line 30 when following this code.
所以,我试着理解这个,C++ UWP using WASAPI,但是我找不到任何枚举部分,这个项目对我来说非常复杂。
它包括许多其他文件(DeviceState.h、common.h)
而且我未能提取代码来创建我自己的应用程序。
我的问题是如何使用 WASAPI 在 C++ UWP 应用程序上捕获音频?
如果这个问题太白痴,我会把我的问题改成How to enumerate audio device in c++ UWP application?
而我之所以使用WASAPI是因为我想访问存储在Buffer中的数据。
是的,您可以使用 WASAPI 在 UWP 中进行音频捕获,这就是您引用的示例 (https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/WindowsAudioSession) 中所做的。
对于枚举,主要功能是 DeviceInformation::FindAllAsync
使用此选择器 MediaDevice::GetAudioCaptureSelector
它将允许您列出捕获设备。
对于流捕获,您需要的主要功能是
ActivateAudioInterfaceAsync
,如果您只需要使用默认设备,它将允许您从设备 ID(特定设备)或设备 class(渲染或捕获)创建 IAudioClient
。
一旦你有了这个IAudioClient
,你就可以用它来得到一个IAudioClientCapture
,基本上就是你在示例中看到的东西。