Swift:AVAudioPCMBuffer 对比 AVAudioBuffer 对比 AVAudioCompressedBuffer
Swift: AVAudioPCMBuffer vs AVAudioBuffer vs AVAudioCompressedBuffer
我目前正在使用 AVAudioPCMBuffer 在一个简单的游戏中播放 .wav 文件。但是,在查看它的文档时,我遇到了另外两种我在其他地方从未见过的缓冲区,即标题中的那些:AVAudioBuffer 和 AVAudioCompressedBuffer。
我的问题是,我应该使用哪一个,为什么?我试图找出其他两个,但我找不到一个例子。如有任何帮助,我们将不胜感激!
AVAudioBuffer
是 AVAudioPCMBuffer
和 AVAudioCompressedBuffer
的超类。
你不应该在实践中处理 AVAudioBuffer
它,通常你只需要使用它的子类。
AVAudioPCMBuffer
用于播放未压缩的 PCM 编码数据(例如 .wav 文件包含的内容)
AVAudioCompressedBuffer
支持不同的压缩格式(参见Supported Audio file formats in iPhone)
对于您的特定用例,我建议使用一种更简单的方式来播放文件:AVAudioFile(forReading: URL)
您可以使用 scheduleFile(_:, at:)
直接将其送入 AVAudioPlayerNode
,这会自动处理缓冲。
我目前正在使用 AVAudioPCMBuffer 在一个简单的游戏中播放 .wav 文件。但是,在查看它的文档时,我遇到了另外两种我在其他地方从未见过的缓冲区,即标题中的那些:AVAudioBuffer 和 AVAudioCompressedBuffer。
我的问题是,我应该使用哪一个,为什么?我试图找出其他两个,但我找不到一个例子。如有任何帮助,我们将不胜感激!
AVAudioBuffer
是 AVAudioPCMBuffer
和 AVAudioCompressedBuffer
的超类。
你不应该在实践中处理 AVAudioBuffer
它,通常你只需要使用它的子类。
AVAudioPCMBuffer
用于播放未压缩的 PCM 编码数据(例如 .wav 文件包含的内容)AVAudioCompressedBuffer
支持不同的压缩格式(参见Supported Audio file formats in iPhone)
对于您的特定用例,我建议使用一种更简单的方式来播放文件:AVAudioFile(forReading: URL)
您可以使用 scheduleFile(_:, at:)
直接将其送入 AVAudioPlayerNode
,这会自动处理缓冲。