微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用WASAPI在c UWP应用程序上捕获音频?

我似乎无法在网上找到任何关于我的问题的教程.
所有 the simple guide都不适合UWP.

例如,
要使用WASAPI,请执行以下步骤

>枚举设备
>捕获音频
>播放(渲染)音频

但是枚举步骤,客户端必须调用CoCreateInstance.但是从我的理解这个功能is not support in UWP.我在this code跟随30号线时失败了.

所以,我试着理解这个,C++ UWP using WASAPI,但我找不到任何枚举部分,这个项目对我来说非常复杂.
它包含很多其他文件(DeviceState.h,common.h)
我无法提取代码来创建自己的应用程序.

我的问题是如何使用WASAPI在c UWP应用程序上捕获音频?

如果这个问题太过分了,我会将我的问题改为如何在c UWP应用程序中枚举音频设备?

我使用WASAPI的原因是因为我想访问存储在Buffer中的数据.

编辑:
用于枚举.
https://github.com/Microsoft/Windows-universal-samples/blob/7c7832e1f144e4fc836603fd70e1352024a5fe1a/Samples/WindowsAudioSession/cpp/Scenario1.xaml.cpp#L85

解决方法

是的,您可以使用WASAPI在UWP中进行音频捕获,这是您引用的示例( https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/WindowsAudioSession)中所做的.

对于枚举,主要功能是Deviceinformation :: FindAllAsync,使用此选择器MediaDevice :: GetAudioCaptureSelector,它将允许您列出捕获设备.

对于流捕获,您需要的主要功能是ActivateAudioInterfaceAsync,如果您只需要使用认设备,它将允许您从设备ID(特定设备)或设备类(渲染或捕获)创建IAudioClient.一旦你有了这个IAudioClient,你就可以用它来获取IAudioClientCapture,基本上是你在样本中看到的东西.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐