我正試圖通過AVPlayer
錄製正在流式傳輸的音頻。從麥克風AVAudioRecorder
只記錄,如果音頻通過揚聲器發揮其可能工作(雖然質量下降),但它肯定會不如果耳機插好工作。從AVPlayer流式傳輸記錄音頻
我到處找了一個解決方案,但仍然沒有找到適合我的解決方案。我需要抓取音頻緩衝區嗎?還有另一種方法來捕捉正在播放的內容嗎?
我正試圖通過AVPlayer
錄製正在流式傳輸的音頻。從麥克風AVAudioRecorder
只記錄,如果音頻通過揚聲器發揮其可能工作(雖然質量下降),但它肯定會不如果耳機插好工作。從AVPlayer流式傳輸記錄音頻
我到處找了一個解決方案,但仍然沒有找到適合我的解決方案。我需要抓取音頻緩衝區嗎?還有另一種方法來捕捉正在播放的內容嗎?
您可以通過將MTAudioProcessingTap
添加到AVPlayer
來獲取音頻緩衝區。
這個過程有點複雜,但有some information那裏。
現在最簡單的方法是使用AVAudioEngine進行播放和錄製。
查看https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch14p655AVAudioEngineTest/AVAudioEngineTest/ViewController.swift爲例。 – matt
如果文件沒有嵌入,我可以使用AVAudioEngine嗎?每當我嘗試在線創建一個'AVAudioFile'時,它立即崩潰。我發現這個,但沒有答案: http://stackoverflow.com/questions/30862664/stream-data-from-network-in-avaudioengine-is-it-possible – Oren
對不起,錯過了你的問題。我懷疑你能做到;你必須訴諸你的其他選擇......! – matt
這就是我一直在想我需要做的事情,但希望我不必走下這種低級框架的工作之路。我發現這篇文章(http://venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/)似乎正是我想要的,但我知道我會遇到重大問題所以希望有一個更容易的選擇。 – Oren
檢查出上面的亞光答案,它應該更容易,如果你不介意丟棄'AVPlayer' –
AVAudioFile應該處理網絡上託管的文件嗎? (我評論Matt'a答案...見下文) – Oren