0
私はカメラを開き、録画されているものを表示するSwift OsXアプリケーションを作ろうとしています。AVCaptureVideoPreviewLayerが表示されないのはなぜですか?
現在のところ、文字通りはViewController
の1つです。緑色のライトが点灯し、録音が開始されていると思われますが、画面はグレーのままで何も表示されません。ここで
はViewController
のためのコードです:
class ViewController: NSViewController, AVCaptureVideoDataOutputSampleBufferDelegate {
let session = AVCaptureSession()
let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
@IBOutlet weak var imgView: NSImageView!
func setUpSession() {
self.session.sessionPreset = AVCaptureSessionPresetLow
// Add the default input camera
do {
let input = try AVCaptureDeviceInput(device: device)
self.session.addInput(input)
print("Input added.")
} catch let error as NSError {
print(error)
}
var previewLayer = AVCaptureVideoPreviewLayer(session: session)
previewLayer.frame = self.view.bounds
previewLayer.position = CGPointMake(0, 0)
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
self.view.layer = previewLayer
self.session.startRunning()
print("Session running.")
}
override func viewDidLoad() {
super.viewDidLoad()
self.setUpSession()
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
はどちらか動作しません試してみてください。まだ白い灰色の画面です。実際、緑色のカメラライトは、self.view.layer = previewLayerの代わりにこの行を使用すると点灯します。 – djm1997
あなたはos xのために使用しますか?そして、なぜUIImageViewが必要ですか? – mafioso
はい、これはOS Xアプリケーション用です。私はUIImageViewを追加し、ViewControllerが動作していることを確認するためにレンダリングしました。 – djm1997