尝试拍摄视频时,Xamarin.forms iOS 崩溃无法调试

问题描述

我有一个问题,我想使用 montemagno 库制作视频:

 private async void CreateVideo()
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                displayAlert("No Camera",":( No camera available.","OK");
                return;
            }

            videoFile = await CrossMedia.Current.TakeVideoAsync(new Plugin.Media.Abstractions.StoreVideoOptions
            {
                DesiredLength = TimeSpan.FromSeconds(Constants.VIDEOLENGTH),Quality = VideoQuality.Low,CompressionQuality = 0
            });            

            if (videoFile == null)
                return;


            //await displayAlert("File Location",videoFile.Path,"OK");
            btn_delVideo.IsVisible = true;
            grid_makeVideo.IsVisible = false;

            videoStream = Converters.StreamToByteArray(videoFile.GetStream());

            isVideoSet = true;
            bx_reset.IsVisible = false;
            btn_delVideo.IsVisible = true;


            await CrossMediaManager.Current.Play(videoFile.Path);
        }

代码在 android 上完美运行。 在 iOS 上,它在生产中崩溃。 我无法调试此代码,因为它会返回。模拟器没有摄像头,因此无法继续。

我尝试部署到真正的 iPhone,但代码设计总是失败,而且这些配置文件是世界上最糟糕的。

我知道它至少达到了显示“无相机”的程度,因此初始化功能似乎可以工作。因此,我相信问题出在 TakeVideoAsync() 上。

它甚至在显示任何相机之前就崩溃了。

我真的需要一些帮助。

解决方法

确保设置了所有权限。并且不要忘记使用麦克风;-)