录制期间AVCaptureConnection setVideoOrientation

时间:2015-06-22 16:24:18

标签: ios avfoundation

我在录制过程中遇到视频方向问题。

我正在使用AVCaptureMovieFileOutput使用AVFoundation录制视频。 在开始录制之前,使用AVCaptureConnection setVideoOrientation方法设置视频方向没有问题。

但是,如果视频录制已在运行,则更改AVCaptureConnection VideoOrientation不会更改正在写入的文件的实际方向。

这是一个已知的限制,还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

只是一个疯狂的想法,但你能暂停录音并改变方向吗?或者可能会停止并立即重启?改变停止/启动过程中的方向?我在这上面找到的问题和答案告诉我,你不能在飞行途中做出这种改变。

https://developer.apple.com/library/ios/qa/qa1744/_index.html

那里说有一个有趣的纳米笔记在这里进行中途飞行变化...

https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html

读下来,你会发现......

在设备之间切换 有时您可能希望允许用户在输入设备之间切换 - 例如,从使用前置摄像头切换到后置摄像头。为了避免暂停或口吃,您可以在会话运行时重新配置会话,但是您应该使用beginConfiguration和commitConfiguration来配置您的配置更改:

AVCaptureSession *session = <#A capture session#>;
[session beginConfiguration];

[session removeInput:frontFacingCameraDeviceInput];
[session addInput:backFacingCameraDeviceInput];

[session commitConfiguration];

当调用最外面的commitConfiguration时,所有更改将一起进行。这确保了平稳过渡。所以[session beginConfiguration]改变你的AVCaptureConnection VideoOrientation如果可以和[session commitConfiguration]。如果有效,请告诉我们!