我可以从AVCaptureDeviceFormat获取音频描述。
let formats = device.formats
for format in formats {
print(format.formatDescription)
}
但是想直接获取mSampleRate和mBitsPerChannel属性。
CMAudioFormatDescription 0x60000010b880 [0x7fffadb29d80] {
mediaType:'soun'
mediaSubType:'lpcm'
mediaSpecific: {
ASBD: {
mSampleRate: 44100.000000
mFormatID: 'lpcm'
mFormatFlags: 0x9
mBytesPerPacket: 8
mFramesPerPacket: 1
mBytesPerFrame: 8
mChannelsPerFrame: 2
mBitsPerChannel: 32 }
cookie: {(null)}
ACL: {Stereo (L R)}
FormatList Array: {(null)}
}
extensions: {(null)}
}
我怎么能这样做? 我一直在调查AudioToolBox框架中的AudioFormatGetProperty(),但我迷路了。 所有人都非常感谢。
答案 0 :(得分:2)
您可以从格式说明中获取AudioStreamBasicDescription
,并从中获取您需要的数据:
let asbd = CMAudioFormatDescriptionGetStreamBasicDescription(format.formatDescription)
if let asbd = asbd?.pointee {
print("Sample rate: \(asbd.mSampleRate), bits per channel: \(asbd.mBitsPerChannel)")
}