[英]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.