你想使用函數UTTypeCopyPreferredTagWithClass。在操場試試這個
import MobileCoreServices
import AVFoundation
let avTypes = AVURLAsset.audiovisualTypes()
let anAVType = avTypes[0]
if let ext = UTTypeCopyPreferredTagWithClass(anAVType as CFString,kUTTagClassFilenameExtension)?.takeRetainedValue() {
print("The AVType \(anAVType) has extension '\(ext)'")
}
else {
print("Can't find the extension for the AVType '\(anAVType)")
}
print("\n")
let avExtensions = avTypes.map({UTTypeCopyPreferredTagWithClass($0 as CFString,kUTTagClassFilenameExtension)?.takeRetainedValue() as String? ?? ""})
print("All extensions = \(avExtensions)\n")
avExtensions = avExtensions.filter { $0.isEmpty == false }
print("All extensions filtered = \(avExtensions)\n")
print("First extension = '\(avExtensions[0])'")
print("Second extension = '\(avExtensions[1])'")
print("Third extension = '\(avExtensions[2])'")
結果:
The AVType AVFileType(_rawValue: public.pls-playlist) has extension 'pls'
All extensions = ["pls", "", "aifc", "m4r", "", "", "wav", "", "", "3gp", "3g2", "", "", "", "flac", "avi", "m2a", "", "aa", "", "aac", "mpa", "", "", "", "", "", "m3u", "mov", "aiff", "ttml", "", "m4v", "", "", "amr", "caf", "m4a", "mp4", "mp1", "", "m1a", "mp4", "mp2", "mp3", "itt", "au", "eac3", "", "", "webvtt", "", "", "vtt", "ac3", "m4p", "", "", "mqv"]
All extensions filtered = ["pls", "aifc", "m4r", "wav", "3gp", "3g2", "flac", "avi", "m2a", "aa", "aac", "mpa", "m3u", "mov", "aiff", "ttml", "m4v", "amr", "caf", "m4a", "mp4", "mp1", "m1a", "mp4", "mp2", "mp3", "itt", "au", "eac3", "webvtt", "vtt", "ac3", "m4p", "mqv"]
First extension = 'pls'
Second extension = 'aifc'
Third extension = 'm4r'