有什么方法可以确定 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))
        }
    }
}