【问题标题】:Rear camera is not working in Ipad in Xamarin Forms App... due to style config?由于样式配置,后置摄像头无法在 Xamarin Forms App 的 Ipad 中工作?
【发布时间】:2019-01-28 16:27:00
【问题描述】:

使用@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 配置?

非常感谢任何指导

【问题讨论】:

  • 您是否尝试过没有 GrialKit 的项目示例,以防万一检查这是否会影响您的解决方案?
  • 为布鲁诺的回复干杯。如果您查看github.com/jamesmontemagno/MediaPluginthere 是一个名为“tests”的文件夹。那里的iOS版本运行良好。但老实说,我试图将其合并到我的表单应用程序中,并且对于将什么放在哪里感到非常困惑。例如,有一个共享文件夹和一个 iOS 文件夹,而我这样做的方式不起作用...
  • 我刚刚合并了来自github.com/jamesmontemagno/MediaPlugin/tree/master/samples/… 的样本,并且那个样本也杀死了后置摄像头。所以基本上它与我的应用程序中的 xamarin 表单或某些配置有关。

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


【解决方案1】:

哈利路亚!

Maximum UISlider.Appearance.MinimumTrackTintColor 和 UISlider.Appearance.MaximumTrackTintColor 确实隐藏在 Grial 中!

这是要修复的链接!

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 2017-08-28
    • 1970-01-01
    • 2022-11-10
    • 2018-08-21
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多