gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:18 25 4
gpt4 key购买 nike

我似乎无法在互联网上找到任何教程来解决我的问题。
全部the simple guide不适合 UWP。

例如,要使用 WASAPI 有这些步骤

  • 枚举设备
  • 捕捉音频
  • 播放(渲染)音频

但是枚举步骤,客户端必须调用CoCreateInstance .但是根据我对这个函数的理解 is not support in UWP .在关注 this code 时,我在第 30 行也失败了.

所以,我试着理解这个,C++ UWP using WASAPI , 但我找不到任何 Enumerate 部分,这个项目对我来说非常复杂。它包括很多其他文件(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,基本上就是你在示例中看到的东西。

关于c++ - 如何使用 WASAPI 在 C++ UWP 应用程序上捕获音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53553984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com