由于样式配置,后置摄像头无法在Xamarin Forms App的Ipad中工作...

时间:2019-01-28 16:27:01

标签: ipad xamarin.forms camera visual-studio-debugging

使用@JamesMontemago Xam.Plugin.Media我收到与另一篇文章相同的错误,但答案不适用于我。简而言之,后置摄像头可在除iPad之外的所有设备上运行。在许多物理设备上进行了尝试,总是Ipad崩溃。在Ipad上,前置摄像头效果很好,但是调用后置摄像头会使其崩溃。

不幸的是,使用后置摄像头绝对至关重要,该应用程序可以拍摄葡萄酒瓶和葡萄酒瓶的照片,据我所知,他们没有清空自拍照的能力。

类似的帖子是:

Rear camera is not working in Ipad in Xamarin forms App

该帖子的解决方案位于:

https://github.com/jamesmontemagno/MediaPlugin/issues/173

Application freezes when trying to present rear camera on iPad

这篇文章和另一篇文章引用了AppDelegate文件中的UI配置代码,该代码导致相机晃动。在这种情况下,其中包括:

 UISlider.appearance().minimumTrackTintColor = themeUI.PrimaryColor.withAlphaComponent(100)

在摄影机绘制CoreGraphics库时,抛出无效的上下文错误导致崩溃,

[UISlider setMinimumTrackTintColor];

我已经浏览完文件,完全找不到对UISlider的配置更改,因此,此解决方案对我没有帮助。

以下代码的“ var file =“行中的代码错误:

takePhoto.Clicked += async (sender, args) =>
        {
            if (!CrossMedia.Current.IsCameraAvailable || 
!CrossMedia.Current.IsTakePhotoSupported)
            {
                await DisplayAlert("No Camera", ":( No camera available.", 
  "OK");
                return;
            }

            var file = await CrossMedia.Current.TakePhotoAsync(new 
Plugin.Media.Abstractions.StoreCameraMediaOptions
            {
                Directory = "Test",
                SaveToAlbum = true,
                CompressionQuality = 25,
                CustomPhotoSize = 100,
                PhotoSize = PhotoSize.MaxWidthHeight,
                MaxWidthHeight = 200,
                DefaultCamera = CameraDevice.Front,
                Name = $"{DateTime.UtcNow}.jpg",


            });


            if (file == null)
                return;

            await DisplayAlert("File Location", file.Path, "OK");

            image.Source = ImageSource.FromStream(() =>
            {
                var stream = file.GetStream();
                file.Dispose();
                return stream;
            });
        };

不幸的是,通过放置此行的断点并显示调用堆栈窗口来运行堆栈跟踪只是给我的:

“条件'array-> len == 1'不符合SIGABRT错误”

所以那里没有帮助。

但是!

我正在使用GrialKit来帮助解决UI配置方面的问题,我想知道该工具包中是否有任何可配置滑块并因此干扰后置摄像头的东西。

所以我的问题是:

使用相机所在的XAML页面的代码隐藏文件,我可以以任何方式将UI配置重置为该页面的某种Xamarin Forms标准吗?我的意思是杀死任何可能未被注意的UI配置?

非常感谢任何指导

1 个答案:

答案 0 :(得分:1)

哈利路亚!

最大的UISlider.Appearance.MinimumTrackTintColor和UISlider.Appearance.MaximumTrackTintColor确实隐藏在Grial中!

这是要修复的链接!

https://github.com/UXDivers/Grial-UI-Kit-Support/issues/333