使用Xamarin启动相机

时间:2016-08-22 12:44:29

标签: xamarin camera xamarin.forms

我是移动开发的新手。我正在尝试使用Xamarin Forms创建一个跨平台的应用程序。到目前为止,我做得很好,但我在试图找到启动相机的方法时遇到了问题。我理解相机是原生功能。有人可以给我一步一步说明如何做到这一点。像个白痴一样对待我。我遇到的例子非常模糊,有些甚至没有完成代码。如果你有一个你认为可能有帮助的链接。我真的很挣扎。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

您可以使用Media Plugin

  

Xamarin和Windows的Media Plugin是一个简单的跨平台插件   拍摄照片和视频或从共享代码库中选择它们。

您可以通过Nuget将其添加到here的解决方案中。

takePhoto.Clicked += async (sender, args) =>
{
    await CrossMedia.Current.Initialize();

    if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
    {
        DisplayAlert("No Camera", ":( No camera available.", "OK");
        return;
    }

    var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
    {
        Directory = "Sample",
        Name = "test.jpg"
    });

    if (file == null)
        return;

    await DisplayAlert("File Location", file.Path, "OK");

    image.Source = ImageSource.FromStream(() =>
    {
        var stream = file.GetStream();
        file.Dispose();
        return stream;
    }); 
};

您可以详细了解它的使用情况here

答案 1 :(得分:0)

您可以将XLabs项目用于Xamarin Forms:

https://github.com/XLabs/Xamarin-Forms-Labs

这是一个简短的安装指南,用于注册XLabs提供的服务,包括相机: http://www.matrixguide.ch/Datenablage/diverses/How_to_Install_and_Setup_XLabs.pdf

这是XLabs相机api: https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Camera

这是一个简短的代码示例: https://bizmonger.wordpress.com/2015/10/19/xamarin-forms-camera-integration/

使用XLabs的优势在于它允许您处理其他本机组件,如GPS,加速度计等。