2017-07-17 3 views
2
import UIKit 
import AVKit 

class ViewController: UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 

//start camera 

     let captureSession = AVCaptureSession() 

     guard let captureDevice = 
      AVCaptureDevice.default(for: .video) else { return } 
     guard let input = try? AVCaptureDeviceInput(device: 
       captureDevice) else { return } 
     captureSession.addInput(input) 

     captureSession.startRunning() 
    } 
} 

私は(:.video用):で、この行でエラーを取得する持っていないエラー: 'String!'と入力してください。何のメンバーのビデオ "

AVCaptureDevice.default(for: .video) else { return } 
+1

これは混乱します。 'AVCaptureDevice'はiOSやmacOSのAVKitには存在しません。 Foundationにはバージョンがありますが、あなたのメソッド*のドキュメントがあるにもかかわらず、 'default'メソッド*はありません。 – JeremyP

答えて

0

方法

class func `default`(_ deviceType: AVCaptureDevice.DeviceType, 
      for mediaType: AVMediaType?, 
     position: AVCaptureDevice.Position) -> AVCaptureDevice? 

の受付DeviceTypeを、することができますbe:

AVCaptureDeviceTypeBuiltInMicrophone 
AVCaptureDeviceTypeBuiltInWideAngleCamera 
AVCaptureDeviceTypeBuiltInTelephotoCamera 
AVCaptureDeviceTypeBuiltInDualCamera 
AVCaptureDeviceTypeBuiltInDuoCamera 
+0

だから私は今何を変えなければならないのですか?私はすみませんでした。すみませんでした.D – David

0

私は考えましたでる。私が見ていたドキュメントは、あなたが必要なもののXcode 9.ためだったAVFoundationをインポートしてから、この機能を使用する最初のものである:例えば

class func defaultDevice(withDeviceType deviceType: AVCaptureDeviceType!, 
             mediaType: String!, 
              position: AVCaptureDevicePosition) -> AVCaptureDevice! 

https://developer.apple.com/documentation/avfoundation/avcapturedevice/2361508-default?changes=latest_minor

let c = AVCaptureDevice.defaultDevice(withDeviceType: AVCaptureDeviceType.builtInTelephotCamer, 
              mediaType: AVMediaTypeVideo, 
              position: AVCaptureDevicePosition.front) 
0

アイム私のプロジェクトをSwift4に変換しようとしているだけです。これは私のために働く。

device = AVCaptureDevice.default(for: AVMediaType.video) 
2

AVMediaType.videoをAVMediaTypeVideoに置き換えてくれました。

+0

それはうまくいきました。 Xcodeは 'for:'を 'forMediaType:'に置き換えるよう提案しています。それは完全に 'forMediaType:AVMediaTypeVideo'になります。これはおそらくすべて、迅速な/これらのAPIの更新によるものです – lelelo

関連する問題