有什么方法可以确定 AVPlayer 使用的是什么编解码器?
Is there any way to determine what codec AVPlayer is using?
我查看了 AVPlayer、AVPlayerItem、AVAsset 等的所有头文件,但没有找到任何可用于收集有关 AVPlayer 当前使用的编解码器的信息的内容。是否可以确定编解码器信息?
您可以通过AVPlayerItem.tracks.assetTrack.formatDescriptions找到编解码器。
类似
func printFourCC(_ fcc: FourCharCode) {
let bytes: [CChar] = [
CChar((fcc >> 24) & 0xff),
CChar((fcc >> 16) & 0xff),
CChar((fcc >> 8) & 0xff),
CChar(fcc & 0xff),
0]
let result = String(cString: bytes)
let characterSet = CharacterSet.whitespaces
print(result.trimmingCharacters(in: characterSet))
}
for track in item.tracks {
if let formats = track.assetTrack?.formatDescriptions as? [CMFormatDescription] {
for format in formats {
printFourCC(CMFormatDescriptionGetMediaSubType(format))
}
}
}
我查看了 AVPlayer、AVPlayerItem、AVAsset 等的所有头文件,但没有找到任何可用于收集有关 AVPlayer 当前使用的编解码器的信息的内容。是否可以确定编解码器信息?
您可以通过AVPlayerItem.tracks.assetTrack.formatDescriptions找到编解码器。
类似
func printFourCC(_ fcc: FourCharCode) {
let bytes: [CChar] = [
CChar((fcc >> 24) & 0xff),
CChar((fcc >> 16) & 0xff),
CChar((fcc >> 8) & 0xff),
CChar(fcc & 0xff),
0]
let result = String(cString: bytes)
let characterSet = CharacterSet.whitespaces
print(result.trimmingCharacters(in: characterSet))
}
for track in item.tracks {
if let formats = track.assetTrack?.formatDescriptions as? [CMFormatDescription] {
for format in formats {
printFourCC(CMFormatDescriptionGetMediaSubType(format))
}
}
}