Swift:AVAudioPCMBuffer vs AVAudioBuffer vs AVAudioCompressedBuffer

问题描述:

我正在使用AVAudioPCMBuffer在简单的游戏中播放.wav文件。然而,在检查它的文档时,我遇到了另外两种其他类型的缓冲区,我从来没有在其他任何地方看到过,这些缓冲区是标题中的:AVAudioBuffer和AVAudioCompressedBuffer。Swift:AVAudioPCMBuffer vs AVAudioBuffer vs AVAudioCompressedBuffer

我的问题是,我应该使用哪一个,为什么?我试图找出其他两个,但我找不到一个例子。任何帮助,将不胜感激!

+0

有人可以回应请:( – MysteryPancake

AVAudioBufferAVAudioPCMBufferAVAudioCompressedBuffer的超类。

你不应该在实践中处理AVAudioBuffer它通常你只是使用它的子类。

  • AVAudioPCMBuffer是用于播放未经压缩的PCM编码数据(比如什么.wav文件包含)
  • AVAudioCompressedBuffer支持不同的压缩格式(见Supported Audio file formats in iPhone

为了您的具体使用的情况下,我建议使用更简单的方式来播放文件:AVAudioFile(forReading: URL),您可以使用scheduleFile(_:, at:)直接输入到AVAudioPlayerNode中,该文件将自动处理缓冲。