在iOS 10发布之前,我使用以下代码为我的录像机获取视频和音频捕获:
for device in AVCaptureDevice.devices()
{
if (device as AnyObject).hasMediaType( AVMediaTypeAudio )
{
self.audioCapture = device as? AVCaptureDevice
}
else if (device as AnyObject).hasMediaType( AVMediaTypeVideo )
{
if (device as AnyObject).position == AVCaptureDevicePosition.back
{
self.backCameraVideoCapture = device as? AVCaptureDevice
}
else
{
self.frontCameraVideoCapture = device as? AVCaptureDevice
}
}
}
当iOS 10最终发布时,我在运行代码时收到了以下警告.请注意,我的录像机在大约两周的时间里仍能正常工作.
iOS 10.0中不推荐使用"devices()":请改用AVCaptureDeviceDiscoverySession.
当我今天早上运行代码时,我的录像机停止了工作.xCode8没有给我任何错误,但是用于相机拍摄的预览层是完全白色的.当我开始录制时,我收到以下错误:
Error Domain=AVFoundationErrorDomain Code=-11800"操作无法完成"UserInfo={NSLocalizedDescription=操作无法完成,NSUnderlyingError=0x17554440{Error Domain=NSOSStatusErrorDomain Code=-12780(null)},NSLocalizedFailureReason=发生未知错误(-12780)}
我相信这与我正在使用不推荐的方法AVCaptureDevice.devices()
有关.因此,我想知道如何使用AVCaptureDeviceDiscoverySession
来代替?
提前感谢您的帮助!