Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin在sqlite中保存视频路径。存在要保存的权限问题_C#_Xamarin_Xamarin.android - Fatal编程技术网

C# Xamarin在sqlite中保存视频路径。存在要保存的权限问题

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 {

我正在录制7秒钟,之后我想保存视频,但我有一个错误。正在尝试保存视频。错误是=

Java.IO.IOException:预览曲面无效 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中

代码是

  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。在显示记录器之前结束活动的。无论如何感谢您的帮助

此错误似乎在您开始录制之前发生,因此可能与权限或要保存到的文件路径无关