我有一个相机项目,它可以拍照,但当我按下拍照按钮,然后给出了一个错误。
错误为:你的应用已进入中断状态,但没有代码可显示,因为所有线程都在执行外部代码(通常是系统代码或框架代码)。
private async void TakeAPhotoButton_OnClicked(object sender, EventArgs e)
{
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
await DisplayAlert("No Camera", ":( No camera avaialble.", "OK");
return;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Test",
SaveToAlbum = true,
});
if (file == null)
return;
await DisplayAlert("File Location", file.Path, "OK");
image.Source = ImageSource.FromStream(() =>
{
var stream = file.GetStream();
file.Dispose();
return stream;
}); ;
}
这是我的代码.任何时候都给这个部分错误.
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Test",
SaveToAlbum = true,
});
这是我的主页.XAML文件.我在这里设计UI.
<ScrollView>
<StackLayout>
<Label Text="Welcome to Camera Access In Xamarin forms"/>
<Button Text="Take a Photo"
x:Name="takePhoto"
BackgroundColor="Fuchsia"
Clicked="TakeAPhotoButton_OnClicked"/>
<Button Text="Pick a Photo"
x:Name="pickPhoto"
BackgroundColor="Blue"
Clicked="PickAPhotoButton_OnClicked"/>
<Button Text="Take A Video"
x:Name="takeVideo"
BackgroundColor="Gray"
Clicked="TakeAVideoButton_OnClicked"/>
<Button Text="Pick A Video"
x:Name="pickVideo"
BackgroundColor="Green"
Clicked="PickAVideoButton_OnClicked"/>
<Image x:Name="image"/>
</StackLayout>
</ScrollView>
我在我的项目中使用NuGet包。
Xam.Plugin.Media
我试着按照他们的文档。我不知道我的问题是什么,我按照这些链接Xamarin.Forms - Camera App。和youtube视频Using Camera with Xamarin Forms
1条答案
按热度按时间hc2pp10m1#
您可以为此测试Xamarin Essential功能:https://learn.microsoft.com/pt-br/xamarin/essentials/media-picker?tabs=android
或者,如果你想让自己的自定义相机屏幕,你可以看到这一个:https://learn.microsoft.com/pt-br/xamarin/community-toolkit/views/cameraview?source=recommendations