2010-04-16 43 views
3

AudioQueue我目前使用iPhone上的音頻序列來記錄和播放音頻。錄製/回放與iPhone

我希望能夠做的是錄製一些音頻,允許用戶暫停記錄隊列,並通過音頻向後尋找並轉發,以選擇他們可以從何處開始記錄的位置。

我已經解決了查找問題,使播放的AudioQueueBuffer大小足夠小,以便播放音頻隊列回調的速率允許用戶使用滑塊控件來聽音頻,因爲它們將滑塊調回到向前。

我想我可以通過設置AudioFileWritePackets功能,我從錄音隊列回調調用的參數inStartingPacket一個新的位置實現了記錄。

麻煩的是這只是插入了先前錄製的音頻的音頻。該文件的長度顯然沒有改變,因此,如果用戶要往回走,並記錄比以前少音頻,舊音響仍然是新錄製的音頻結束後。

有沒有一種方法可以讓AudioFile在用戶開始插入新音頻時截斷,還有其他方式可以從插入位置開始移除舊音頻,還是有更好的方法去做這個任務?

謝謝

回答

3

我有同樣的問題。我目前的做法是將新音頻錄製到單獨的文件中,然後在完成第一個文件的第一部分與第二個文件的連接時,將結果寫入第三個文件,然後將第三個文件重命名爲第一個文件,刪除第二個文件。段連結操作需要編寫自定義,但使用的AudioFile API相當簡單的功能。

我也喜歡聽到更多開明的想法,或者看到AudioFileTruncate()函數。