如果AVMetadata在NSURL中返回空URL,可能是因为URL字符串中包含特殊字符或无效字符导致的。为了解决这个问题,可以尝试对URL字符串进行编码处理。
下面是一个使用URL编码的示例代码:
import AVFoundation
func getMetadataURL(metadataURLString: String) -> URL? {
if let encodedString = metadataURLString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
if let metadataURL = URL(string: encodedString) {
return metadataURL
}
}
return nil
}
// 使用示例
let metadataURLString = "https://example.com/my video.mov"
if let metadataURL = getMetadataURL(metadataURLString: metadataURLString) {
// 在这里使用metadataURL
print(metadataURL)
} else {
print("无法解析URL")
}
在上述代码中,getMetadataURL
函数将URL字符串进行编码处理,并尝试将编码后的字符串转换为URL对象。如果转换成功,则返回URL对象;否则返回nil。
请注意,这只是一个示例代码,实际应用中可能需要根据具体情况进行调整和处理。