音频处理的格式有 ASBD , AudioStreamBasicDescription
和 ASPD, AudioStreamPacketDescription
有 ASPD ,就是压缩音频,例如 mp3
let isCompressed = packetDescriptionsOrNil != nil
没有 ASPD ,就使用 ASBD, 就是非压缩音频,例如 wav
压缩音频,里面的数据不均匀,每个包含有的帧数据不等
func ParserPacketCallback(_ context: UnsafeMutableRawPointer, _ byteCount: UInt32, _ packetCount: UInt32, _ data: UnsafeRawPointer, _ packetDescriptions: Optional<UnsafeMutablePointer<AudioStreamPacketDescription>>) {
let parser = Unmanaged<Parser>.fromOpaque(context).takeUnretainedValue()
let packetDescriptionsOrNil: UnsafeMutablePointer<AudioStreamPacketDescription>? = packetDescriptions
let isCompressed = packetDescriptionsOrNil != nil
os_log("%@ - %d [bytes: %i, packets: %i, compressed: %@]", log: Parser.loggerPacketCallback, type: .debug, #function, #line, byteCount, packetCount, "\(isCompressed)")
/// At this point we should definitely have a data

本文探讨了iOS中音频处理的两种主要格式ASBD(AudioStreamBasicDescription)和ASPD(AudioStreamPacketDescription)。ASBD用于非压缩音频如wav,而ASPD则用于压缩音频如mp3,其中压缩音频的数据帧不均匀分布。
最低0.47元/天 解锁文章
3853

被折叠的 条评论
为什么被折叠?



