C# Xamarin在sqlite中保存视频路径。存在要保存的权限问题
我正在录制7秒钟,之后我想保存视频,但我有一个错误。正在尝试保存视频。错误是= Java.IO.IOException:预览曲面无效 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 代码是C# Xamarin在sqlite中保存视频路径。存在要保存的权限问题,c#,xamarin,xamarin.android,C#,Xamarin,Xamarin.android,我正在录制7秒钟,之后我想保存视频,但我有一个错误。正在尝试保存视频。错误是= Java.IO.IOException:预览曲面无效 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 代码是 private void SetupRecording(object sender, EventArgs e) // start recording { try {
private void SetupRecording(object sender, EventArgs e) // start recording
{
try
{
video.StopPlayback();
recorder = new MediaRecorder();
recorder.SetVideoSource(VideoSource.Camera);
recorder.SetOutputFormat(OutputFormat.Default);
recorder.SetVideoFrameRate(30);
recorder.SetVideoEncoder(VideoEncoder.Default);
recorder.SetOutputFile(path);
recorder.SetPreviewDisplay(video.Holder.Surface);
recorder.SetMaxDuration(7000);
// recording for 7 seconds
recorder.Prepare();
try
{
Video vid = new Video()
{
ProjectID = passedID,
VideoPath = path,
};
updatavideodb.insertIntoTableVideo(vid);
}
catch (Java.Lang.Exception ex)
{
recorder.Stop();
recorder.Release();
return;
}
recorder.Start();
Thread.Sleep(8000);
recorder.Stop();
recorder.Release();
textCountDown.Text = " Finshed Recording ";
CloseCamera();
}
我试图保存到的路径
path=Android.OS.Environment.ExternalStorageDirectory.AbsolutePath+“/test”+time.ToString().Replace(“/”,“-”+”)“.mp4”
舱单是—
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ShowWorksDemo6.ShowWorksDemo6" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
<uses-sdk android:minSdkVersion="16" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.INTERNET" />
<application android:label="ShowWorksDemo6"></application>
</manifest>
代码在行记录器处停止运行。Prepare()
我希望在我错的地方能得到任何帮助,这将是一个很大的帮助。我本想在这里加上一条评论,但我还没有足够的代表。看看答案。看起来错误与代码中的这一行有关
recorder.SetPreviewDisplay(video.Holder.Surface)代码>我发现了问题所在,在调用视频重新排序之前,我正在使用dispose。在显示记录器之前结束活动的。无论如何感谢您的帮助此错误似乎在您开始录制之前发生,因此可能与权限或要保存到的文件路径无关