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。切换到物理设备并开始工作。