[OK]を、これは、デバイスのビットの減価償却費を避けるために、ios9上で実行されている コード、および10アップの両方を得ることへの答えである およびデバイスに組み込まれたの名前を返すように。
これは、だから、エディタは、私はあなたがここに先頭を参照のコードを追加提案10
AVCaptureDevice.devices()
で減価償却されます。
#available ....
と私はカントデバイスローカライズされた名前を印刷するには」どこにも文書化さ見つけた場合。だから私はこれを見つけてSwift 3に変更した。Swiftify
NSLog(@ "デバイス名:%@"、[device localizedName]);
これが混乱した場合に示されているコードは、申し訳ありませんが、この
Device name: Optional("Back Camera")
Device name: Optional("Back Camera")
Capture device found
Capture session running
Device name: Optional("Front Camera")
Device name: Optional("iPhone Microphone")
を生成 - しかし、次のコードは非常に単純です。それが役に立てば幸い。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//=======================
captureSession.sessionPreset = AVCaptureSessionPresetHigh
if #available(iOS 10.0, *) {
if let devices = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: .back) {
print("Device name: \(devices.localizedName)")
}
} else {
// Fallback on earlier versions
}
if let devices = AVCaptureDevice.devices() as? [AVCaptureDevice] {
// Loop through all the capture devices on this phone
for device in devices {
print("Device name: \(device.localizedName)")
// Make sure this particular device supports video
if (device.hasMediaType(AVMediaTypeVideo)) {
// Finally check the position and confirm we've got the back camera
if(device.position == AVCaptureDevicePosition.back) {
captureDevice = device
if captureDevice != nil {
print("Capture device found")
beginSession()
}
}
}
}
}
}