问题描述
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() 上。
它甚至在显示任何相机之前就崩溃了。
我真的需要一些帮助。
解决方法
确保设置了所有权限。并且不要忘记使用麦克风;-)