iPhone:以编程方式混合两个音频文件?

Get*_*tsy 14 iphone audio mixing ipad

我希望有两个音频文件,并以编程方式混合和播放.当我播放第一个音频文件时,经过一段时间(动态时间)后,我需要在播放第一个音频文件中间的某个地方时添加带有第一个音频文件的第二个小音频文件,最后我需要保存为一个音频文件在设备上.它应播放音频文件,其中包含第二个混音器音频.

我已经经历了很多论坛,但无法弄清楚如何实现这一目标?

有人可以澄清我的疑问吗?

  1. 在这种情况下,我应该使用什么音频文件/格式?我可以使用.avi文件吗?
  2. 如何在动态时间设置到第一个音频文件后以编程方式添加第二个音频?例如:如果第一个音频总时间是2分钟,我可能需要在第一个文件的1分钟或1.5分钟或55秒内混合第二个音频文件(3秒音频).它充满活力.
  3. 如何在设备上保存最终输出音频文件?如果我以某种方式以编程方式保存音频文件,我可以再次播放吗?

我不知道如何实现这一目标.请提出您的想法!

Fas*_*tAl 6

  • 打开每个音频文件
  • 阅读标题信息
  • 将原始未压缩音频作为每个文件的整数数组存入内存
  • 从文件1的数组中开始,你要在file2中混合,循环,将file2的int值添加到file1,确保"剪切"任何高于或低于最大值的值(这就是你混合音频的方式......是的,就这么简单).如果file2较长,则必须使第一个数组足够长以完全保留file2的剩余部分.
  • 编写新的标题信息,然后写入添加了file2的数组中的音频.
  • 如果涉及压缩或文件不适合内存,则可能必须实现更复杂的缓冲方案.


DGu*_*und 0

如果您要同时播放多个声音,请务必使用 *.caf 格式。Apple 建议使用它同时播放多种声音。在以编程方式混合它们方面,我假设您只是希望它们同时播放。当一种声音正在播放时,只需告诉另一种声音在您想要的任何时间播放即可。要设置特定时间,请使用 NSTimer (NSTimer 类参考)并创建一个方法以在计时器触发时播放声音。