2011-11-19 77 views
0

我必須爲此使用CoreAudio嗎?如何使用Objective C從特定程序捕捉音頻?

是否有任何人都知道的簡單方法?谷歌搜索幾個小時後,我比我開始時更困惑。

具體來說,我試圖通過我的局域網流式傳輸來自Firefox或Chrome的音頻。這是否讓它更容易? (我試圖找到一個內置的API,可以通過網絡瀏覽器將音頻流式傳輸到我的obj c程序)

任何見解或意見,將不勝感激。

+0

您是否需要爲正在開發的程序執行此操作,或者您是否只想從Web瀏覽器傳輸音頻? – outis

+0

對於我正在開發的程序 – stormist

回答

1

沒有公共的API來捕獲音頻輸出。您可以將開放源代碼soundflower系統擴展(創建虛擬輸入和輸出設備,將輸出設備饋入輸入設備)集成到您的應用程序中。請注意,您需要捕獲所有系統聲音,因爲瀏覽器通常沒有可配置的首選項來指定他們使用的輸出設備。爲了便於比較,媒體應用程序通常會讓您選擇使用的輸出設備,因此在捕獲時可以將這些輸出的輸出隔離。

+0

所以我會從虛擬輸出設備讀取?你有一個如何做到這一點的代碼示例?我想我會盡快閱讀它的一些流。你認爲我可以應用壓縮並通過UDP連接發送嗎? – stormist

+0

@stormist:你從輸入設備讀取(輸出設備被寫入,這是什麼使他們輸出設備)。系統寫入輸出設備,然後輸入虛擬輸入設備。我沒有任何特定的代碼示例,但是您會以標準方式使用Core Audio,因此任何從特定輸入設備讀取的示例都可以使用。然後,您可以隨意在流中執行任何操作,包括壓縮音頻並對其進行流式處理。 – outis

+0

...我已經用現有的應用程序完成了這項工作,在AU實驗室中通過音頻效果濾波器運行麥克風輸入,然後通過soundflower進行輸出。 Skype然後使用soundflower輸入設備,它自然地壓縮音頻並通過網絡傳輸。結果:我聽起來像是Dalek。 – outis