繁体   English   中英

尝试使用Xam.Plugin.Media打开相机时抛出异常

[英]Exception throw out when trying to open the camera using Xam.Plugin.Media

当我尝试使用await CrossMedia.Current.TakePhotAsync()打开相机时, await CrossMedia.Current.TakePhotAsync()我收到以下异常消息。 它不会在应用程序中打开任何相机。

商店InterpretedSystem.Runtime.CompilerServices.IAsyncStateMachineVT.<>7__wrap2上的字段溢出InterpretedSystem.Runtime.CompilerServices.IAsyncStateMachineVT.<>7__wrap2

我的代码如下

        public UserProfilePage()
        {
            InitializeComponent();

            CameraButton.Clicked += CameraButton_Clicked;
            BindingContext = new UserProfileViewModel(this.Navigation);
        }  

        private async void CameraButton_Clicked(object sender, EventArgs e)
        {
            if (CrossMedia.Current.IsCameraAvailable && CrossMedia.Current.IsTakePhotoSupported)
            {

                // Supply media options for saving our photo after it's taken.
                var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions
                {
                    Directory = "Receipts",
                    Name = $"{DateTime.UtcNow}.jpg"
                };

                // Take a photo of the business receipt.
                try
                {
                    var file = await CrossMedia.Current.TakePhotoAsync(mediaOptions);

                }
                catch (Exception exception)
                {
                    Console.WriteLine(exception);
                    throw;
                }
            }
        }

Xaml页面如下所示,

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <Image x:Name="PhotoImage" />
        <Button x:Name="CameraButton" Text="Take Photo" Grid.Row="1" />
    </Grid>

如何打开相机并在Xamarin中拍照。 下面是杂物,

Xam.Plugin.Media = v3.1.2

Xamarin.Forms = v2.5.0.121934

VS2017

当您尝试在Xamarin Live Player中运行音频,相机等功能时,会发生此错误。

插入实际的物理设备进行调试或发布将解决此问题。

我认为原因可能在于照片的目标文件名:

Name = $"{DateTime.UtcNow}.jpg"

该日期包含在文件路径中无效并导致异常的字符。

您可以使用适合文件名的另一种格式:

Name = $"{DateTime.UtcNow.ToString("yyyy-dd-M--HH-mm-ss")}.jpg"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM