2010-07-25 137 views
4

我實際上正在製作一個應用程序,該應用程序必須在ipad上播放和錄製互聯網上的音頻流。音頻的流式傳輸完成後,我將不得不很快來到錄製部分,而且我不知道如何繼續。錄製實時流媒體音頻

你能給我一個提示嗎?理念?它必須在同時錄製到AAC或MP3的同時播放。

謝謝。

+0

這個任何解決方案

攔截PCM數據之前?請找到以下鏈接:http://stackoverflow.com/questions/10931615/how-to-record-livestream-audio-and-save-to-documents-directory-while-playing – 2012-06-07 12:47:14

+0

你可以請你提供我,如果你有任何錄製liveStream音頻的解決方案? – 2012-06-07 12:48:42

回答

1

您需要使用較低級別的AudioQueue API,並使用AudioSession API設置音頻會話。

然後,您需要填寫AudioStreamBasicDescription結構並創建一個新的輸入隊列AudioQueueNewInput(),幷包含用於處理輸入緩衝區的回調函數。

然後您需要使用AudioQueueAllocateBuffer()AudioQueueEnqueueBuffer()創建3個緩衝區。只有到那時你纔可以打電話給AudioQueueStart()。您還應該處理音頻會話中斷,並處理停止音頻隊列。

這將得到一個包含未壓縮的16位整數PCM音頻數據的緩衝區流。您仍然需要壓縮數據,這是另一個涉及使用AudioConverter API的蠕蟲,我沒有在iPhone OS上完成這些工作,所以我不知道在那裏可以工作。

+0

嗨lucius 謝謝,你能解釋一點點xD我是一個新的,我迷路了:s – awlcs 2010-08-04 09:17:42

+0

你有一個具體的問題嗎? – lucius 2010-08-04 17:36:51

+0

你有沒有這樣的代碼記錄的例子? :( – awlcs 2010-08-09 09:26:14

0

請看這個框架。它提供了記錄數據,同時記錄Streaming Kit

播放MP3通過HTTP

STKAudioPlayer* audioPlayer = [[STKAudioPlayer alloc] init]; 

[audioPlayer play:@"http://www.abstractpath.com/files/audiosamples/sample.mp3"]; 

及其數據追加到NSMutabledata通過使用此委託離線播放。其發揮

[audioPlayer appendFrameFilterWithName:@"MyCustomFilter" block:^(UInt32 channelsPerFrame, UInt32 bytesPerFrame, UInt32 frameCount, void* frames) 
    { 
    ... 
    }];