我有一个iPhone应用程序,女巫可以录制视频。问题是方向,它始终是纵向的。 我需要它来检测设备方向,然后以正确的方向保存视频。
// setup video recording
mRecordingDelegate = new RecordingDelegate();
// setup the input Video part
mCaptureVideoInput = new AVCaptureDeviceInput(AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Video), out mVideoError);
//Audio part
mCaptureAudioInput = new AVCaptureDeviceInput(AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Audio), out mAudioError);
// setup the capture session
mCaptureSession = new AVCaptureSession();
mCaptureSession.SessionPreset = AVCaptureSession.PresetMedium;
mCaptureSession.AddInput(mCaptureVideoInput);
mCaptureSession.AddInput(mCaptureAudioInput);
// setup the output
mCaptureOutput = new AVCaptureMovieFileOutput();
mCaptureOutput.MaxRecordedDuration = MonoTouch.CoreMedia.CMTime.FromSeconds(VideoLength, 1);
//add Output to session
mCaptureSession.AddOutput(mCaptureOutput);
// add preview layer
mPrevLayer = new AVCaptureVideoPreviewLayer(mCaptureSession);
mPrevLayer.Frame = new RectangleF(0, 0, 320, 480);
mPrevLayer.BackgroundColor = UIColor.Clear.CGColor;
mPrevLayer.VideoGravity = "AVLayerVideoGravityResize";
// Show video output
mCaptureSession.CommitConfiguration();
mCaptureSession.StartRunning();
RecordingDelegate.Stopped += delegate {
if(recording)
OnBtnStopRecordingVideo();
};
// add subviews
this.InvokeOnMainThread (delegate
{
this.View.Layer.AddSublayer (mPrevLayer);
});
答案 0 :(得分:1)
<强> 1。基础知识
在我们深入了解细节之前,让我们先回顾一下界面方向变化的工作原理以及如何应对它们。首先,如果您希望视图自动旋转,则需要覆盖方法shouldAutorotateToInterfaceOrientation:并返回YES。如果您只想在某种条件下允许自动旋转,您也可以在此方法中对此条件进行测试。
这是允许自动旋转所需要做的最基本的事情,但是可以覆盖的其他方法非常有用。这些方法是
• willRotateToInterfaceOrientation
• didRotateFromInterfaceOrientation
• willAnimateFirstHalfOfRotationToInterfaceOrientation
• willAnimateSecondHalfOfRotationFromInterfaceOrientation
前两种方法对于旋转的前后处理非常有用。您也许可以在willRotateToInterfaceOrientation中初始化视图控制器或向当前视图添加一些视图。第二个2非常自我解释。如果要在旋转的特定阶段执行其他操作,也可以实现它们。
使用视图控制器方向时,另一个非常有用的代码示例是:
if(UIInterfaceOrientationIsLandscape(interfaceOrientation)){
//do some processing…
}else if(UIInterfaceOrientationIsPortrait(interfaceOrientation)){
//do different processing…
}
else if(UIDeviceOrientationIsValidInterfaceOrientation(interfaceOrientation)){
//do something
}
注意:从here粘贴的说明请查看帖子了解详情
<强> 2。此post将帮助您更改视频方向