在我的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。 –