簡體   English   中英

如何在Java或C中監視/采樣輸出音頻?

[英]How can I monitor/sample output audio in Java or C?

最近我一直在試驗我在計算機上播放的音頻的實時可視化(通過任何任意程序,如Spotify),但我一直在使用SoundFlower將輸出音頻輸入到假行中。

我想知道的是,如果有一種C / C ++或Java原生的方式,它將允許我捕獲發送到我的計算機的任何音頻(我正在使用Mac),以類似於我的方式可以捕獲一行(IE是一個連續填充PCM數據的樣本緩沖區)。

除了讀取輸出數據外,我不想模仿SoundFlower的其他功能。

我建議看看WavTap的源代碼,它是SoundFlower的一個分支,它只關注捕獲系統的默認音頻輸出。

SoundFlower和WavTap都通過安裝內核擴展來工作 ,該擴展添加了一個可以路由音頻的附加音頻設備。 然后,他們從此設備捕獲音頻。 WavTap在啟動時將其設置默認設備,以便自動捕獲系統的整體輸出,而無需用戶明確設置路由。

我相信WavTap代碼是MIT許可的,系統擴展代碼很好地抽象,所以你應該能夠適應你自己的項目。

為了更多地了解它是如何工作的, OS X和iOS內核編程手冊對第12章中的一些技術以及示例音頻設備和引擎的可下載代碼進行了解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM