Articles of wasapi

Windows 7上个别程序的峰值计数器

是否有可能在Windows 7上获得个别程序的峰值读数,如果是这样,怎么办? 使用WASAPI,可以通过回送设备捕获整个系统audio,但是这不区分来自不同程序的输出。 这个问题涉及捕获单个指定应用程序的audio,但是当处理捕获正在单独播放audio的所有程序时,答案似乎是过分的。 这一定是可能的,因为SndVol可以做到这一点,如下图所示。 问题是如何完成? 是通过未暴露的API调用完成的,还是实际上可以通过WASAPI实现类似的function? 谢谢。

如何从IMMDevice获取信息?

对于IMMDevice,我是一个完整的初学者,而且我需要问一个好的,简单的方法来获取某些设备的信息。 在我的程序中,我已经用GetDefaultAudioEndpoint()成功地设置了一个指针。 现在我只需要能够从中获得一些基本的信息,比如一些演讲者的信息或者演讲者的ID等等。 有什么好办法可以让初学者能够接受? 谢谢!

如何控制Windows 7中的麦克风增强?

我试图在C / C ++应用程序中使用MIXER API来控制Windows 7中的麦克风增强(电平/(非)静音),但是我没有得到相同的控件。 可以使用WASAPI来完成吗? 有人可以build议任何其他API来控制Windows 7中的麦克风增强? 这是我迄今写的… const IID IID_IDeviceTopology = __uuidof(IDeviceTopology); const IID IID_IPart = __uuidof(IPart); const IID IID_IAudioAutoGainControl = __uuidof(IAudioAutoGainControl); HRESULT hr = S_OK; CoInitialize(NULL); IMMDeviceEnumerator *deviceEnumerator = NULL; hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_INPROC_SERVER, __uuidof(IMMDeviceEnumerator), (LPVOID *)&deviceEnumerator); IMMDevice *pEndptDev = NULL; hr = deviceEnumerator->GetDefaultAudioEndpoint(eCapture, eConsole, &pEndptDev); deviceEnumerator->Release(); deviceEnumerator = NULL; […]

Windows Vista / 7:如何采样输出audio混合?

我如何获得当前的波形输出采样stream? 在2006年12月关于social.microsoft.com的一个问题( 如何从Vista中的'Wave'或'Stereo Mix'进行logging? )yjslash问: 在Windows XP或更早版本中,我可以将audiostream捕获到扬声器。 换句话说, DirectSoundCapture能够从选定的源代码行中捕获。 如果select“Wave Out Mix”或“Stereo Mix”或其他类似的音源作为录音源行,Dir​​ectSoundCapture可以将audiostream录制到扬声器。 Larry Osterman(MSFT) (audio团队开发人员和StackOverflow用户 )回应说: 你在XP中使用了哪些API? 他们应该继续在Vista上工作。 WASAPI有一个特殊的环回模式,允许客户端捕获后混audiostream,这也可能有帮助 关于Stackoverflow的一个问题( 我如何读取windows xp和windows 7中的系统audio输出? )也提到WASAPI能够对输出混合进行采样,并且可以从Windows Vista开始。 2007年1月,Windows Team博客文章提到了对audio输出进行采样的能力(用于回声消除的目的;以及HDCP对其的影响): 回声消除对于高级内容的工作不太好吗? 我们相信,Windows Vista为应用程序提供了足够的信息,以成功构build高质量的回声消除function。 用什么API来采样audio输出? Vista提供哪些应用程序访问当前的audio输出stream? WASAPI的哪些function以及如何使用它们可以采样/采集当前的audio输出? 也可以看看 探索Windows Vistaaudio设备链(树?)的工具 MSDN:关于WASAPI

在Windows 7上捕获单个应用程序的audio

有没有办法只捕捉一个应用程序输出的audio,而不是整个系统? 使用WASAPI,我可以捕获整个系统的audio ,但是我只希望从一个应用程序中捕获audio(将会有很多应用程序,所有应用程序都会一次播放audio)。

渲染audio会话是否有可能从另一个进程?

我正在第一次进入WSASAPI系统的窗口,我不知道我想要的甚至可以使用Windows API。 我试图编写程序,将logging来自各种程序的声音,并将每个分解成单独的logging音轨/audio文件。 从我所做的研究中,我知道我需要logging的单元是呈现给端点的各种audio会话 ,正常的录制方式是通过呈现端点并执行回送。 不过,从我在MSDN中读到的内容来看 ,与会话的唯一交互是通过IAudioSessionControl ,并且不提供给我一种获取会话stream副本的方法。 我错过了什么可以让我用WASAPI(或其他一些Windows API)做到这一点,并获得个别会议(或个别stream)之前,他们混合在一起,形成端点或这是一个可以实现的目标?