有沒有辦法捕獲僅由單個應用程序輸出的音頻,而不是整個系統?使用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. 在android上捕獲應用程序音頻輸出
- 2. 在Windows 7 HTML桌面應用程序中使用音頻
- 3. 地鐵應用程序中的音頻捕獲
- 4. 音頻/視頻捕獲在Windows 8 Metro應用
- 5. 在iOS背景應用程序中捕獲(音頻)流
- 6. 劫持/捕獲不同應用程序的音頻
- 7. 捕獲在Windows應用程序
- 8. 在asp.net web應用程序中使用flash捕獲音頻和視頻
- 9. 如何爲Vaadin應用程序錄制/捕獲語音/視頻
- 10. 在Windows 10通用應用程序上捕獲應用程序的屏幕
- 11. 從WPF應用程序捕獲視頻
- 12. 從android應用捕獲音頻
- 13. Windows Phone 7上的Flex應用程序
- 14. 在Windows Store應用程序的每個頁面上播放音頻(mp3)C#XAML
- 15. 捕獲音頻Cordova
- 16. Android音頻捕獲
- 17. 使用HTML5捕獲音頻
- 18. 使用DirectShow捕獲音頻
- 19. 使用Silverlight捕獲音頻
- 20. 如何在網絡上編程音頻/視頻應用程序?
- 21. C# - 捕獲Windows應用程序輸出
- 22. 在C++中捕獲音頻
- 23. 音頻捕獲在C#
- 24. 想要從應用程序啓動默認錄音機以捕獲音頻
- 25. 在Windows 7上捕獲數據包
- 26. 以編程方式在Windows 7上切換音頻設備
- 27. 使用AVFoundation的視頻捕獲不會捕獲任何音頻
- 28. 如何在windows phone 7應用程序中捕獲未處理的異常?
- 29. 在Phonegap應用程序上捕獲應用程序退出?
- 30. Android中的音頻捕獲
您是如何使用Detours掛接IAudioRenderClient的?我嘗試通過IMMDeviceEnumerator,IMMDevice :: Activate和IAudioClient :: GetService。但不幸的是IMMDevice :: Activate似乎沒有被調用。 – Cthutu 2013-05-08 13:45:52