2015-10-07 214 views
3

我正試圖通過AVPlayer錄製正在流式傳輸的音頻。從麥克風AVAudioRecorder只記錄,如果音頻通過揚聲器發揮其可能工作(雖然質量下降),但它肯定會不如果耳機插好工作。從AVPlayer流式傳輸記錄音頻

我到處找了一個解決方案,但仍然沒有找到適合我的解決方案。我需要抓取音頻緩衝區嗎?還有另一種方法來捕捉正在播放的內容嗎?

回答

1

您可以通過將MTAudioProcessingTap添加到AVPlayer來獲取音頻緩衝區。

這個過程有點複雜,但有some information那裏。

+0

這就是我一直在想我需要做的事情,但希望我不必走下這種低級框架的工作之路。我發現這篇文章(http://venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/)似乎正是我想要的,但我知道我會遇到重大問題所以希望有一個更容易的選擇。 – Oren

+0

檢查出上面的亞光答案,它應該更容易,如果你不介意丟棄'AVPlayer' –

+0

AVAudioFile應該處理網絡上託管的文件嗎? (我評論Matt'a答案...見下文) – Oren

0

現在最簡單的方法是使用AVAudioEngine進行播放和錄製。

+0

查看https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch14p655AVAudioEngineTest/AVAudioEngineTest/ViewController.swift爲例。 – matt

+0

如果文件沒有嵌入,我可以使用AVAudioEngine嗎?每當我嘗試在線創建一個'AVAudioFile'時,它立即崩潰。我發現這個,但沒有答案: http://stackoverflow.com/questions/30862664/stream-data-from-network-in-avaudioengine-is-it-possible – Oren

+0

對不起,錯過了你的問題。我懷疑你能做到;你必須訴諸你的其他選擇......! – matt