在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周。
在iOS 10.0中不建议使用“ devices()”:改用AVCaptureDeviceDiscoverySession。
今天早上运行代码时,录像机停止工作。xCode8没有给我任何错误,但是相机捕获的PreviewLayer是完全白色的。当我开始记录时,出现以下错误:
错误域= AVFoundationErrorDomain代码= -11800“操作无法完成” UserInfo = {NSLocalizedDescription =操作无法完成,NSUnderlyingError = 0x17554440 {Error Domain = NSOSStatusErrorDomain Code = -12780“(null)”},NSLocalizedFailureReason = An发生未知错误(-12780)}
我认为这与我正在使用不赞成使用的方法有关AVCaptureDevice.devices()
。因此,我想知道如何使用它AVCaptureDeviceDiscoverySession
呢?
提前谢谢你的帮助!
您可以通过以下方式获得前置摄像头:
AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .front)
后置摄像头:
AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .back)
和麦克风:
AVCaptureDevice.default(.builtInMicrophone, for: AVMediaType.audio, position: .unspecified)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句