До выхода 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 наконец вышел, я получил следующее предупреждение, когда я запускал свой код. Обратите внимание, что мой видеомагнитофон все еще работал плавно в течение 2 недель.
'devices()' устарел в iOS 10.0: вместо этого используйте AVCaptureDeviceDiscoverySession.
Когда я запускал свой код этим утром, мой видеомагнитофон переставал работать. xCode8 не дает мне никаких ошибок, но предварительный просмотр для захвата камеры полностью белый. Когда я начинаю запись, я получаю следующую ошибку:
Ошибка домена = AVFoundationErrorDomain Code = -11800 "Операция не может быть завершена" UserInfo = {NSLocalizedDescription = Операция не может быть выполнена, NSUnderlyingError = 0x17554440 {Ошибка домена = NSOSStatusErrorDomain Code = -12780 "(null)" } NSLocalizedFailureReason = Произошла неизвестная ошибка (-12780)}
Я считаю, что это связано с тем, что я использую устаревший подход AVCaptureDevice.devices()
. Следовательно, мне было интересно, как использовать AVCaptureDeviceDiscoverySession
вместо этого?
Спасибо за вашу помощь заранее!