我有一种情况,我可以通过从音轨末尾取出一些操纵缓冲区并将它们写入到输出文件的开头来保存音频的后处理传递。ExtAudioFileSeek和ExtAudioFile一起写在同一个文件上
我本来以为我可以通过重新使用ExtAudioFileSeek
写指针做到这一点,正要来实现它,当我看到这条线在文档
Ensure that the file you are seeking in is open for reading only. This function’s behavior with files open for writing is undefined.
现在我知道我可以关闭该文件进行写入然后重新打开它,但这个过程比这更复杂一点。我正在做的部分操作是从我正在写入的文件中的缓冲区读取数据。整个过程是这样的:
- 读缓存从读文件和写文件
- 过程的开始
- 读缓冲区末尾的缓冲区
- 写缓冲区回到起点写入文件,覆盖我在步骤2中读取的缓冲区
从逻辑上讲,这可以在1遍中完成没有问题。以编程方式,我怎样才能在不破坏数据的情况下实现同样的目标,变得效率低下(与我的目标相反),或者可能会破坏宇宙?
感谢您的帮助。它不是实时的,所以它不应该是一个问题。想尝试一下我现在看到的实施问题? http://stackoverflow.com/questions/4159653/mixing-down-two-files-together-using-extended-audio-file-services – coneybeare 2010-11-11 21:56:28
同意,你应该只写一个新的文件。试图变得聪明并且保存一步可能会在以后叮you你。 – lucius 2010-11-22 05:21:23