是否有可能排除音频数据被IAudioClient环回模式(AUDCLNT_STREAMFLAGS_LOOPBACK)捕获,或者呈现一个不包含在环回捕获的音频数据。独占模式(AUDCLNT_SHAREMODE_EXCLUSIVE)的流不会被捕获,但它也会阻止其他应用程序在同一设备上呈现音频数据。 最佳答案 客户端只能为共享模式流(AUDCLNT_SHAREMODE_SHARED)启用环回模式。独占模式流不能在环回模式下运行。 关于windows-排除数据被WASAPI中的环回模式捕获,我们
我正在使用WASAPI在C++和Yeh!中获取音频数据。我了解到WASAPI不支持音频数据的转换,因为它提供和接收核心音频端点。我正在做一个项目来寻找只需要简单PCM数据的精确音频。但是使用WASAPI,我得到不同格式的数据取决于音频设备。那么,Windows是否有任何简单的API可以将任何数据转换为PCM。注意:我使用方法获取音频IAudioCaptureClient::GetBuffer(&data,...);或者是否有任何其他api,我可以使用它直接为Windows桌面和WindowsPhone获取PCM格式的数据? 最佳答案
我试图找出独占模式下特定音频设备支持哪些输出格式。为此,我正在使用IAudioClient->IsFormatSupported(),根据文档,它应该可用于此目的。不幸的是,对于我尝试传递的几乎所有格式,它都会返回AUDCLNT_E_UNSUPPORTED_FORMAT,默认的2声道44.1khz音频除外。如果我真的尝试初始化audioclient,有一些格式成功了,但在IsFormatSupported()中失败了。只是尝试初始化每种格式不是一种选择,因为这可能会导致其他应用程序停止音频。有没有其他人看到过这种行为,或者知道是否有其他方法可以找到特定音频设备支持的格式?
我正在使用WASAPI编写专业音频应用程序。我机器上的所有设备都有16位或24位PCM的引擎格式。考虑到这一点,我想知道假设所有音频端点都将PCM作为其native格式是否安全。是吗?如果没有,什么样的设备没有? 最佳答案 假设所有设备都是16位或24位PCM绝对是不安全的。我知道选择正确的格式是一个很大的技巧。但它也可能类似于32位IeeeFloat。但是,作为用户,您只能设置16或24位->大多数情况下是16或24位。反正。您也可以使用独占模式。在独占模式下,你可以自己指定一种格式。但请记住:您必须被允许使用独占模式并且使用独占
我正在尝试使用C/C++应用程序中的MIXERAPI来控制Windows7中的麦克风增强(音量/(非)静音),但我没有获得相同的控件。可以使用WASAPI完成吗?有人可以推荐任何其他API来控制Windows7中的麦克风增强吗?这就是我到目前为止所写的...constIIDIID_IDeviceTopology=__uuidof(IDeviceTopology);constIIDIID_IPart=__uuidof(IPart);constIIDIID_IAudioAutoGainControl=__uuidof(IAudioAutoGainControl);HRESULThr=S_O
我使用WASAPI在Windows7上以共享模式捕获音频缓冲区。我使用的扬声器只能有48kHz、96kHz、192kHz或44.1kHz采样率。我的声卡是Realtek高清声卡。我需要知道如果我在另一个操作系统(如WindowsVista或Windows8)上执行我的程序,WASAPI的行为是否会有所不同。此外,我需要知道getBuffer是否会为使用不同硬件(不同声卡)的捕获缓冲区检索相同大小。我自己无法测试,在网上也找不到太多细节。但是我的程序必须在具有不同版本的Windows和不同硬件的不同计算机上运行。如果捕获的缓冲区大小不同,我的程序将无法在另一台计算机上正常运行。如果有人知
我在这看到slidesvista中的winmm和directsound是基于wasapi的。这是否意味着winmm和directsound实际上是通过调用WASAPI中的函数来完成工作的?我在谷歌搜索后没有找到这个信息,希望这里有人知道。 最佳答案 除了几个高度特化的异常(exception)(directks、ASIO、openal),Windows中的所有音频渲染都通过WASAPI。这包括通过winmm和directsound进行的音频渲染。 关于windows-DirectSoun
我想列出显示在windows音量混合器中的应用程序。在此示例中,“sonssysteme”、“Windows”和“spotify”我写了一些代码,我能够计算并列出这些应用程序。问题是我无法获取他们的名字或他们的图标路径这是输出:SessionName:IconpathName:SessionName:IconpathName:SessionName:IconpathName:SessionName:@%SystemRoot%\System32\AudioSrv.Dll,-202IconpathName:@%SystemRoot%\System32\AudioSrv.Dll,-203我不
我正在为需要能够在各种设备上录制和播放的程序开发音频代码,其中一些是高端设备,具有各种不同的wav和AIFF格式。我希望能够使用WASAPI库,但我遇到了一些主要问题。目前最大的问题是,据我所知,设备只允许播放格式完全匹配的流。这就是我正在做的-我设置设备(这里我只是获取默认控制台设备):hr=pEnumerator->GetDefaultAudioEndpoint(eRender,eConsole,&pPlaybackDevice);我激活设备:hr=pPlaybackDevice->Activate(__uuidof(IAudioClient),CLSCTX_ALL,NULL,(v
对于IMMDevice,我是一个完全的初学者,我想问一下从设备中获取信息的简单好方法是什么。在我的程序中,我已经使用GetDefaultAudioEndpoint()成功地设置了指向其中一个的指针。现在我只需要能够从中获取一些基本信息,例如一些演讲者信息或演讲者ID或类似信息。有什么好的方法可以让初学者学会?谢谢! 最佳答案 设备附加了各种属性,您可以从设备属性存储中读取它们。MSDN在这里为您提供了一个代码片段:AudioEndpointDevices>DeviceProperties您还可以使用预构建的实用程序来快速检查您的设备