C# 尝试设置SetVideoFrameRate时发生xamarin错误
我正在研究xamarin。我正在使用MediaRecorder,我只想设置帧速率,但当我设置它时C# 尝试设置SetVideoFrameRate时发生xamarin错误,c#,android,xamarin,xamarin.android,mediarecorder,C#,Android,Xamarin,Xamarin.android,Mediarecorder,我正在研究xamarin。我正在使用MediaRecorder,我只想设置帧速率,但当我设置它时recorder.SetVideoFrameRate(30)我得到错误的 Java.Lang.IllegalStateException: 我不确定是否it设备无法处理它,或者是否有某种方法可以让它工作。我只是使用简单的MediaRecorder MediaRecorder recorder; video.StopPlayback(); recorder = new MediaRecorder()
recorder.SetVideoFrameRate(30)代码>我得到错误的
Java.Lang.IllegalStateException:
我不确定是否it设备无法处理它,或者是否有某种方法可以让它工作。我只是使用简单的MediaRecorder
MediaRecorder recorder;
video.StopPlayback();
recorder = new MediaRecorder();
//--
recorder.SetVideoFrameRate(30);
// recorder.SetCaptureRate(150);
recorder.SetVideoSource(VideoSource.Camera);
recorder.SetAudioSource(AudioSource.Mic);
recorder.SetOutputFormat(OutputFormat.Default);
recorder.SetVideoEncoder(VideoEncoder.Default);
recorder.SetAudioEncoder(AudioEncoder.Default);
recorder.SetOutputFile(path);
recorder.SetPreviewDisplay(video.Holder.Surface);
recorder.Prepare();
recorder.Start();
您不能在SetOutputFormat
之前调用SetVideoFramerate
。将该方法调用移动到SetOutputFormat
下,它就会工作
recorder = new MediaRecorder();
recorder.SetVideoSource(VideoSource.Camera);
recorder.SetAudioSource(AudioSource.Mic);
recorder.SetOutputFormat(OutputFormat.Default);
recorder.SetVideoFrameRate(30); // Move it here
Android实际上有一个很好的文档,告诉您每个方法可以抛出哪些异常。这是一段引自:
投掷
如果在prepare()之后或setOutputFormat()之前调用,则为IllegalStateException。注意:在某些具有自动帧速率的设备上,这将设置最大帧速率,而不是恒定帧速率。实际帧速率将根据照明条件而变化
你知道如何设置相机的曝光或焦距吗lens@oisin1min这是您正在寻找的,但现在已被弃用。文档中提到您现在应该使用,但我没有任何使用经验。谢谢。你太棒了。你知道我在哪里可以找到android的例子吗