質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1416閲覧

カメラを横向きで撮影できない

tarofess

総合スコア127

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/12/11 05:45

現在カメラで撮影する機能を作っているのですが、カメラを横向きにして撮影することができません。
今困っているのは、撮影をしてその動画を再生する画面を表示した時に、以下の写真のように縦で動画が表示されてしまっているということです。

image

このアプリの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 }

どうすれば横向きで撮影した動画を横向きのプレビューで表示することができるようになるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

私も同じことになりました。自分で思いついて、UIImageの向きを変えてできました。

Swift

1guard let image1 = UIImage(data: imageData) else { return } 2let image = UIImage(cgImage: image1.cgImage!, scale: image1.scale, orientation: .up) 3images.append(image)

投稿2020/06/15 09:07

shuntar30

総合スコア80

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問