Swift:AVAudioPCMBuffer vs AVAudioBuffer vs AVAudioCompressedBuffer
问题描述:
我正在使用AVAudioPCMBuffer在简单的游戏中播放.wav文件。然而,在检查它的文档时,我遇到了另外两种其他类型的缓冲区,我从来没有在其他任何地方看到过,这些缓冲区是标题中的:AVAudioBuffer和AVAudioCompressedBuffer。Swift:AVAudioPCMBuffer vs AVAudioBuffer vs AVAudioCompressedBuffer
我的问题是,我应该使用哪一个,为什么?我试图找出其他两个,但我找不到一个例子。任何帮助,将不胜感激!
答
AVAudioBuffer
是AVAudioPCMBuffer
和AVAudioCompressedBuffer
的超类。
你不应该在实践中处理AVAudioBuffer
它通常你只是使用它的子类。
-
AVAudioPCMBuffer
是用于播放未经压缩的PCM编码数据(比如什么.wav文件包含) -
AVAudioCompressedBuffer
支持不同的压缩格式(见Supported Audio file formats in iPhone)
为了您的具体使用的情况下,我建议使用更简单的方式来播放文件:AVAudioFile(forReading: URL)
,您可以使用scheduleFile(_:, at:)
直接输入到AVAudioPlayerNode
中,该文件将自动处理缓冲。
有人可以回应请:( – MysteryPancake