在我的iOS應用中,我播放一些短波文件,並最終嘗試將我播放的所有內容導出到單個音頻文件(如WAV或CAF文件)。我設法使用AUFilePlayer進行播放。如何將通過AUFilePlayer播放的音頻保存到WAV或CAF文件?將通過AUFilePlayer播放的音頻保存到外部文件
0
A
回答
2
你可能會想看看ExtAudioFile API。這暴露了一個名爲ExtAudioFileWrite
的函數,它被設計爲與您的音頻單元傳遞的數據很好地配合。 ExtAudioFileWrite的簽名如下:
OSStatus ExtAudioFileWrite (
ExtAudioFileRef inExtAudioFile,
UInt32 inNumberFrames,
const AudioBufferList *ioData
);
與音頻單元呈現回調,它看起來像這樣很好地一致:
OSStatus (*AURenderCallback)(
void * inRefCon,
AudioUnitRenderActionFlags * ioActionFlags,
const AudioTimeStamp * inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList * ioData
);
通知共享UInt32 inNumberFrames
和AudioBufferList * ioData
ARGS。
所以,你的工作流程可能是:
- 獲取一個ExtAudioFile設置了寫
- 讓您的AUGraph設置渲染音頻
- 奪AudioBufferLists您AudioUnits被繞過
3需要更多關於如何設置應用程序的知識,所以我無法真正幫助您解決問題。如果你想將音頻發送到揚聲器以及寫入文件,你可能需要利用AUGraphAddRenderNotify
,這會讓你知道每次渲染髮生的時間(並讓你把你自己的AURenderCallback掛到寫給你的ExtAudioFile)。
如果您以這種方式進行處理(即生活在渲染回調中),請務必使用ExtAudioFileWriteAsync
,這樣您就不會阻止渲染線程。
相關問題
- 1. 保存會議播放音頻文件
- 2. 將文件保存爲音頻文件後未播放文件
- 3. 通過VoIP播放音頻文件
- 4. 通過jQuery將音頻文件加載到HTML5音頻播放器
- 5. 播放音頻文件並通過SIP播放
- 6. 播放音頻文件的一部分
- 7. iOS音頻在音頻播放完成後將音頻文件流保存到文檔目錄中
- 8. 從內部存儲路徑播放音頻視頻文件
- 9. 一次播放音頻音頻文件
- 10. android MediaPlayer播放在線(外部)音頻
- 11. Javascript ::通過HTML5播放多個音頻文件音頻播放器播放列表
- 12. 播放音頻文件
- 13. Android播放音頻文件
- 14. 播放音頻文件
- 15. 播放音頻文件
- 16. 音頻文件不播放
- 17. 音頻文件未播放
- 18. 播放Twilio音頻文件
- 19. 在播放音頻文件
- 20. 音頻播放器在iPhone中播放遠程音頻文件?
- 21. Android將音頻文件保存到內部存儲
- 22. 如何在android中播放外部音頻文件?
- 23. Android - 通過揚聲器播放音頻
- 24. 通過JS重疊播放音頻
- 25. 通過解碼Base64播放音頻
- 26. 通過JavaScript爲iPad播放音頻EPUB
- 27. 通過AudioManager在Android中播放音頻?
- 28. 通過jquery播放mediaelement.js音頻點擊
- 29. Android - 通過聽筒播放音頻
- 30. 全部播放音頻HTML
我被卡住了設置AUGraph。 –