当使用AVCaptureVideoDataOutput在App Store版本的iOS应用中崩溃时,可能是由于以下原因导致的:
isVideoDataOutputSupported
属性来确定设备是否支持。let captureSession = AVCaptureSession()
let videoDataOutput = AVCaptureVideoDataOutput()
if captureSession.canAddOutput(videoDataOutput) {
captureSession.addOutput(videoDataOutput)
} else {
print("Video data output is not supported on this device.")
}
NSCameraUsageDescription
Allow access to the camera to capture video.
let captureSession = AVCaptureSession()
let videoDataOutput = AVCaptureVideoDataOutput()
// 设置输出处理队列
let outputQueue = DispatchQueue(label: "videoDataOutputQueue")
videoDataOutput.setSampleBufferDelegate(self, queue: outputQueue)
// 设置视频输入
if let videoDevice = AVCaptureDevice.default(for: .video) {
do {
let videoInput = try AVCaptureDeviceInput(device: videoDevice)
if captureSession.canAddInput(videoInput) {
captureSession.addInput(videoInput)
}
} catch {
print("Failed to create video input: \(error)")
}
}
// 设置视频输出
if captureSession.canAddOutput(videoDataOutput) {
captureSession.addOutput(videoDataOutput)
}
captureSession.startRunning()
以上是一些常见的解决方法,希望对你有帮助。如果问题持续存在,请提供更多的代码示例和错误信息,以便更好地帮助你解决问题。