有没有办法捕获仅由单个应用程序输出的音频,而不是整个系统?使用WASAPI我可以捕获the entire system audio,但我希望只捕获一个应用程序的音频(将会有很多应用程序,所有应用程序都会一次播放音频)。在Windows 7上捕获单个应用程序的音频
回答
Detours用于挂钩。使用lib钩住IAudioRenderClient接口,包括GetBuffer和ReleaseBuffer,并从缓冲区读取数据。
根据应用程序使用的播放音频的API,您可以编写一个AppInit DLL,它将包装内置的waveIn \ waveOut函数并传递音频数据。我知道这适用于waveIn \ waveOut函数,但不知道Windows 7上有哪些其他音频播放界面,以及它们是否与AppInit技巧兼容。
不要使用AppInit,只需启动暂停的进程并注入DLL即可 - 无论哪种方式都很黑,但至少不会影响机器上的每个应用程序。 – 2011-05-21 21:55:07
确实如此,但从图标点击开始暂停/注入很困难:AppInit选项工作得相当好。如果你想超级小心,你可以为暂停/注入技巧兼容的可执行文件做图像劫持:只是没有任何经验。 – Femi 2011-05-21 22:01:10
请不要将AppInit用于任何事情,您几乎可以保证让其他应用程序崩溃,并让您的客户的生活变得不那么棒。您可以通过使用调试器API暂停进程,注入DLL,然后打开。 – 2011-05-21 22:13:43
- 1. 在Windows 7 HTML桌面应用程序中使用音频
- 2. 音频/视频捕获在Windows 8 Metro应用
- 3. 地铁应用程序中的音频捕获
- 4. 在iOS背景应用程序中捕获(音频)流
- 5. 劫持/捕获不同应用程序的音频
- 6. 从WPF应用程序捕获视频
- 7. 从android应用捕获音频
- 8. Windows Phone 7上的Flex应用程序
- 9. 使用HTML5捕获音频
- 10. 使用DirectShow捕获音频
- 11. 使用Silverlight捕获音频
- 12. 在Windows 7上捕获数据包
- 13. 音频捕获在C#
- 14. 如何在网络上编程音频/视频应用程序?
- 15. 想要从应用程序启动默认录音机以捕获音频
- 16. 使用AVFoundation的视频捕获不会捕获任何音频
- 17. 如何在Windows Phone 7上使用SoundEffects的压缩音频?
- 18. Android中的音频捕获
- 19. 在Windows 7中管理应用程序音量
- 20. Windows Phone 7应用程序
- 21. 通过XNA应用程序在Windows Phone 7中捕获摄像头
- 22. 在Windows 7上运行一个应用程序
- 23. Windows 7上每个应用程序的网络使用情况
- 24. 如何在Windows Mobile 6.0应用程序中播放音频?
- 25. 音频记录问题在Windows Phone 8.1银光应用程序
- 26. 如何在Windows 7上移植Windows 8应用程序
- 27. 在Windows 7操作系统上开发Windows Phone应用程序
- 28. Windows窗体应用程序在Windows 7上有不良比例
- 29. 在Windows 7上为Windows XP构建应用程序
- 30. 如何在Windows 7上运行Windows 8使vb应用程序?
您是如何使用Detours挂接IAudioRenderClient的?我尝试通过IMMDeviceEnumerator,IMMDevice :: Activate和IAudioClient :: GetService。但不幸的是IMMDevice :: Activate似乎没有被调用。 – Cthutu 2013-05-08 13:45:52