Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试使用Xam.Plugin.Media打开相机时抛出异常_C#_Xamarin_Xamarin.forms_Xamarin.android - Fatal编程技术网

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

C# 尝试使用Xam.Plugin.Media打开相机时抛出异常,c#,xamarin,xamarin.forms,xamarin.android,C#,Xamarin,Xamarin.forms,Xamarin.android,当我试图用打开相机时,等待CrossMedia.Current.TakePhotAsync()我遇到以下异常。它不会打开应用程序中的任何摄影机 存储解释器System.Runtime.CompilerServices.IAsyncStateMachineVT.7_uwrap2上的字段溢出 我的代码如下: public UserProfilePage() { InitializeComponent();

当我试图用
打开相机时,等待CrossMedia.Current.TakePhotAsync()
我遇到以下异常。它不会打开应用程序中的任何摄影机

存储
解释器System.Runtime.CompilerServices.IAsyncStateMachineVT.7_uwrap2上的字段溢出

我的代码如下:

        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


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

Name = $"{DateTime.UtcNow}.jpg"
日期包含的字符在文件路径中无效,并导致异常

您可以使用适用于文件名的替代格式:

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

当您试图在Xamarin Live Player中运行音频、摄像头等功能时,会发生此错误


插入实际的物理设备进行调试或释放将解决问题

我已经按照你的建议改变了。但是运气不好。你找到解决办法了吗?我在Xamarin ad身份验证中也遇到了类似的问题:store
解释器System.Runtime.CompilerServices.IAsyncStateMachineVT.extraQueryParameters上的字段溢出。是否尝试使用Xamarin Live player?或实际的物理设备?正在尝试使用Xamarin Live Player。切换到物理设备并开始工作。