AVVideoCompressionPropertiesKey 崩溃
AVVideoCompressionPropertiesKey crash
我正在使用 AVAssetWriter 和 AVCaptureVideoDataOutput 进行实时视频录制。我在用户设备上看到许多崩溃报告,但无法在我的任何设备上重现。我需要有关以下代码中可能出现的问题的信息。这可能是因为 NSDictionary 到 [String:AnyObject] 的类型转换失败。
在 class 我有:
private var videoOut: AVCaptureVideoDataOutput?
然后在函数中,我这样做:
var recommendedSettings:[String:AnyObject]?
recommendedSettings = videoOut.recommendedVideoSettings(forVideoCodecType: AVVideoCodecType.hevc, assetWriterOutputFileType: AVFileType.mov) as? [String : AnyObject]
if let recommendedSettings = recommendedSettings {
/* crashes here */
var compressionSettings = recommendedSettings[AVVideoCompressionPropertiesKey] as! [String:AnyObject]
}
在 Swift 中由 AVVideoCompressionPropertiesKey 编辑的字典 return 的假定 return 类型是什么?
返回类型为字典,即
let videoCompressionProps: Dictionary<String, Any> = [
AVVideoAverageBitRateKey : videoBitrate,
AVVideoMaxKeyFrameIntervalKey : videomaxKeyFrameInterval,
AVVideoProfileLevelKey : avVideoProfileLevel
]
我正在使用 AVAssetWriter 和 AVCaptureVideoDataOutput 进行实时视频录制。我在用户设备上看到许多崩溃报告,但无法在我的任何设备上重现。我需要有关以下代码中可能出现的问题的信息。这可能是因为 NSDictionary 到 [String:AnyObject] 的类型转换失败。
在 class 我有:
private var videoOut: AVCaptureVideoDataOutput?
然后在函数中,我这样做:
var recommendedSettings:[String:AnyObject]?
recommendedSettings = videoOut.recommendedVideoSettings(forVideoCodecType: AVVideoCodecType.hevc, assetWriterOutputFileType: AVFileType.mov) as? [String : AnyObject]
if let recommendedSettings = recommendedSettings {
/* crashes here */
var compressionSettings = recommendedSettings[AVVideoCompressionPropertiesKey] as! [String:AnyObject]
}
在 Swift 中由 AVVideoCompressionPropertiesKey 编辑的字典 return 的假定 return 类型是什么?
返回类型为字典,即
let videoCompressionProps: Dictionary<String, Any> = [
AVVideoAverageBitRateKey : videoBitrate,
AVVideoMaxKeyFrameIntervalKey : videomaxKeyFrameInterval,
AVVideoProfileLevelKey : avVideoProfileLevel
]