

現在動画を撮影しようとしているのですが、以下のコードを実行すると「because more than one output of the same type
is unsupported」というエラーが出ます。

[code]

            var myDevice : AVCaptureDevice?
            let devices = AVCaptureDevice.devices()
    
            for device in devices {
                if(device.position == AVCaptureDevicePosition.Front){
                    myDevice = device as? AVCaptureDevice
                }
            }
    
            do {
                let videoInput = try AVCaptureDeviceInput(device: myDevice) as AVCaptureDeviceInput
                self.captureSession.addInput(videoInput)
                let audioInput = try AVCaptureDeviceInput(device: self.audioDevice) as AVCaptureDeviceInput
                self.captureSession.addInput(audioInput);
            } catch {
    
            }
    
            let movieFileOutput = AVCaptureMovieFileOutput()
            self.captureSession.addOutput(movieFileOutput)
            var videoConnection: AVCaptureConnection? = nil
    
            for connection: AVCaptureConnection in movieFileOutput.connections as! [AVCaptureConnection] {
                print(connection)
    
                for inputport in connection.inputPorts {
                    if let port = inputport as? AVCaptureInputPort {
                        print(port)
    
                        if port.mediaType == AVMediaTypeVideo {
                            videoConnection = connection
                        }
                    }
    
                }
            }
    
            if ((videoConnection?.supportsVideoOrientation) != nil) {
                videoConnection?.videoOrientation = AVCaptureVideoOrientation.LandscapeLeft
            }
    
            self.captureSession.commitConfiguration()
            self.captureSession.addOutput(self.fileOutput)
            self.captureSession.startRunning()
    
[/code]

let movieFileOutput = AVCaptureMovieFileOutput()の行から  
if ((videoConnection?.supportsVideoOrientation) != nil) {  
までの行を追加すると上述のエラーが出ました。（その追加したコードは動画の向きを横向きで固定するためのコードです）  
どうすれば動画を撮影できるようになるでしょうか？  
どなたかわかる方がいれば教えていただきたいです。よろしくお願いします。


CC BY-SA 3.0
2015-11-26T23:30:36.123
19347
2016-04-16T11:54:05.807
5210
question
ios swift avfoundation
動画撮影の際に「because more than one output of the same type is unsupported」というエラーが出る


`captureSession` に対して `self.fileOutput` と `movieFileOutput` の両方を `addOutput()`
しているためにエラーが出ているのだと思いますが・・・。

`self.fileOutput` へ出力する際に動画の向きを固定したいのですよね？現状のコードでは新しく作成した `movieFileOutput`
につながるコネクションで動画の向きを固定しているように見えます。

`movieFileOutput` ではなく `self.fileOutput`
につながるコネクションを探して、動画の向きを設定すべきではないのでしょうか？

参考 [Objective-C - AVFoundationでカメラを表示するとても短いサンプル -
Qiita](http://qiita.com/y_matsuwitter/items/e93fffea4c9ba9e5d15a)


CC BY-SA 3.0
2015-12-18T07:51:58.127
20155
2015-12-18T07:51:58.127
8000
19347
answer