iOS版10出來之前我用的是下面的代碼爲我的錄像機的視頻和音頻採集:如何獲得前置攝像頭,後置攝像頭和音頻AVCaptureDeviceDiscoverySession
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()' was deprecated in iOS 10.0: Use AVCaptureDeviceDiscoverySession instead.
當我今天早上運行我的代碼時,我的錄像機停止工作。 xCode8不會給我任何錯誤,但相機捕獲的previewLayer是完全白色的。當我然後開始記錄我收到以下錯誤:
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x17554440 {Error Domain=NSOSStatusErrorDomain Code=-12780 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-12780)}
我相信,有事可做的事實,我使用的是過時的做法AVCaptureDevice.devices()
。因此,我想知道如何使用AVCaptureDeviceDiscoverySession
代替?
非常感謝您的幫助!
原來,我在我的iPhone攝像頭被打破了,因此白顏色顯示在預覽圖層中。不過謝謝你的回答,至少我可以擺脫我的警告xcode8一直在給我。 – AndreasLukas
你知道怎麼用Objective-C的後置攝像頭做同樣的事情嗎? – fi12