Swift 如何将不同的音频文件混合到一个文件中

Swift 如何将不同的音频文件混合到一个文件中,swift,xcode,audio,Swift,Xcode,Audio,我知道stackoverflow上还有很多其他问题,比如我的问题。但是我没有找到合适的。我想模拟不同播放时间的乒乓球拉力赛。当我击球时(A),当球击中我一侧的桌子时(B),当球击中另一侧的桌子时(C),当另一名球员击中球时(D),我将录制一个声音(例如mp3)。所以我有4个不同的mp3声音文件。我认为如果我生成一个包含不同声音的mp3文件,会更精确。我认为这可能是正确的方法 我创建了一个长度为X秒的空声音文件(mp3) 我在位置0处插入文件(D)。混合文件的完整长度与之前相同(X sconds)

我知道stackoverflow上还有很多其他问题,比如我的问题。但是我没有找到合适的。我想模拟不同播放时间的乒乓球拉力赛。当我击球时(A),当球击中我一侧的桌子时(B),当球击中另一侧的桌子时(C),当另一名球员击中球时(D),我将录制一个声音(例如mp3)。所以我有4个不同的mp3声音文件。我认为如果我生成一个包含不同声音的mp3文件,会更精确。我认为这可能是正确的方法

  • 我创建了一个长度为X秒的空声音文件(mp3)
  • 我在位置0处插入文件(D)。混合文件的完整长度与之前相同(X sconds)
  • 我在位置x1插入文件(B)。混合文件的完整长度与之前相同(X sconds)
  • 我在位置x2处插入文件(A)。混合文件的完整长度与之前相同(X sconds)
  • 我在位置x3插入文件(C)。混合文件的完整长度与之前相同(X sconds)
  • 现在我可以循环播放了。这可能会更容易,因为每250毫秒播放不同的声音

    我的问题是:

  • 这条路对吗

  • 或者每250毫秒播放不同的声音不是问题吗

  • If(1):如何混合mp3文件?(链接到实际工作示例可能会有所帮助)

  • If(2):如何以规定的毫秒准确播放声音


  • 谢谢Jens

    我想说的是将所有文件读入单独文件的最佳方式。在此基础上,创建所需长度的新缓冲区。然后,将4个缓冲区的内容复制到主缓冲区中的正确位置。最后一步是将主缓冲区保存为
    .mp3
    文件。当然,这假设您需要将最终输出保存为文件。如果你只需要在飞行中组装和播放音频,那么你可以简单地播放决赛。