在iPhone上混合声音文件
我有几个wav文件,可能还有一个mp3,我想把它们混合成一个wav或mp3文件。我正在使用C/C++/Obj-C(iPhone)。我真的没有这方面的经验。如果有人能给我一些建议,我将非常感激 基本上,我想做的是类似的事情,比如Audacity可以做的事情,但是是通过编程实现的。难道没有一个声音库,你可以很容易地打开音频文件,并“粘贴”到一个新的在定义的位置?在哪里混合是你不必担心的事情 谢谢。作为起点阅读,它包含很多信息。以下是摘录: 在iphone上混音有三种方式:在iPhone上混合声音文件,iphone,audio,mixing,Iphone,Audio,Mixing,我有几个wav文件,可能还有一个mp3,我想把它们混合成一个wav或mp3文件。我正在使用C/C++/Obj-C(iPhone)。我真的没有这方面的经验。如果有人能给我一些建议,我将非常感激 基本上,我想做的是类似的事情,比如Audacity可以做的事情,但是是通过编程实现的。难道没有一个声音库,你可以很容易地打开音频文件,并“粘贴”到一个新的在定义的位置?在哪里混合是你不必担心的事情 谢谢。作为起点阅读,它包含很多信息。以下是摘录: 在iphone上混音有三种方式: 音频单元框架 多声道混
- 音频单元框架
- 多声道混音器-“允许您将多个音频流混合到单个流”
- 3D混音器单元-“允许您混合多个音频流,指定立体声输出平移,操纵采样率”
- OpenAl在游戏开发中的应用
混合线性PCM的两个声音缓冲区只需将其中的每个采样值相加,当然要确保不会溢出。但是,通常情况下,在缓冲区中使用浮点值,所以问题是当您返回文件时。你也应该在iPhone上有CoreAudio,它有各种方法可以打开/读/写不同格式的声音文件。我认为iPhone还有一个更高级的api,不在mac上,请查阅apple文档。如果您特别想了解Audacity的功能,它使用的是UndertheHood(看起来像麻省理工学院的许可证)。也许你可以试着使用它?你能澄清一下你是想同时播放你的文件还是混合播放,然后把结果写进一个文件吗?如果是后者,您是否有理由不能预先对它们进行预处理以创建单个文件?如果是前者,你可能会想阅读音频队列服务或OpenAL,这两者都是相当深入的主题。是的,声音可能是同步的。@quano-hv你能找到解决办法吗?@Aadil我还没有实现任何与此相关的东西,自从我问起就没有研究过。现在情况可能已经改变,可能会有易于使用的库。我建议你调查一下,如果发现什么就回来。:)请注意,我不想播放这些文件(在iPhone上),只需处理它们并保存到新文件中即可。:)我会检查链接的。是的,我也明白这一点。这并不难,但需要一些工作。我想一定有人以前做过这件事,甚至可能为它做了一个简单的lib。那会节省我一些时间。阅读文件、添加值和写出来并不是我能想到的最激动人心的事情。:)这似乎只是一个微不足道的功能。我真的很惊讶,似乎很难找到一个已经存在的lib来实现这一点。到目前为止,我还没有在文档中找到任何解释如何打开多个文件、将它们及时放置在特定位置并将它们混合成单个文件的内容。好的,但API中对此有支持,如果我没记错的话,您需要用文件格式的某些属性填充结构,然后将其发送到一些库函数。我做这件事已经有一段时间了,但我要说的是,多种音频格式的格式转换是非常重要的,它都是由API支持并为您完成的。时间线之类的东西,我认为你必须自己发明,除非它是实时播放的,它也得到API的支持。但这应该不会太难,因为您可以通过(时间*采样频率)获得缓冲索引。