現在カメラで撮影する機能を作っているのですが、カメラを横向きにして撮影することができません。
今困っているのは、撮影をしてその動画を再生する画面を表示した時に、以下の写真のように縦で動画が表示されてしまっているということです。
このアプリのGeneralの設定では「Device Orientation」に「Landscape Left」と「Landscape Right」を指定しています。
そしてiPhone自体の画面回転ロックも外しています。
コードは現在以下のようになっています。
カメラの撮影
swift
1func setCamera() { 2 let devices = AVCaptureDevice.DiscoverySession(deviceTypes: [AVCaptureDevice.DeviceType.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .front).devices 3 4 do { 5 let videoInput = try AVCaptureDeviceInput(device: devices.first!) as AVCaptureDeviceInput 6 captureSession.addInput(videoInput) 7 let audioInput = try AVCaptureDeviceInput(device: audioDevice!) as AVCaptureDeviceInput 8 captureSession.addInput(audioInput); 9 } catch { 10 11 } 12 13 captureSession.commitConfiguration() 14 captureSession.addOutput(fileOutput) 15 captureSession.startRunning() 16 } 17 18func startRecording() { 19 let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 20 let documentsDirectory = paths[0] as String 21 let filePath : String? = "path/to/documentdirectory" 22 let fileURL = URL(fileURLWithPath: filePath!) 23 fileOutput.startRecording(to: fileURL, recordingDelegate: self) 24 }
撮影した動画の表示
swift
1@IBOutlet weak var playerView: AVPlayerView! 2 3func setPlayer() { 4 let avAsset = AVURLAsset(url: filePath, options: nil) 5 let playerItem = AVPlayerItem(asset: avAsset) 6 videoPlayer = AVPlayer(playerItem: playerItem) 7 let layer = playerView.layer as! AVPlayerLayer 8 layer.player = videoPlayer 9 } 10 11override var supportedInterfaceOrientations: UIInterfaceOrientationMask { 12 return .landscapeLeft 13 }
どうすれば横向きで撮影した動画を横向きのプレビューで表示することができるようになるでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。