Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 77050

Xam.Plugin.Media not working

$
0
0

This is my Xaml (C#):

`private void Xaml()
{
Title = "Incidências";
var Grid = new Grid();
Grid.RowDefinitions = new RowDefinitionCollection();

        //Colunas
        Grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Absolute) });      //0 e 1
        Grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(10, GridUnitType.Star) });         //1 e 2
        Grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(30, GridUnitType.Absolute) });     //2 e 3
        Grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(10, GridUnitType.Star) });         //3 e 4
        Grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Absolute) });      //4 e 5

        //Linhas
        //Grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Absolute) });         //0 e 1
        Grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Auto) });               //0 e 1
        Grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(150, GridUnitType.Auto) });             //1 e 2
        Grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(75, GridUnitType.Star) });              //2 e 3


        //var width = mainDisplayInfo.Width;
        //var height = mainDisplayInfo.Height / 5;

        myImage = new Image
        {
            Margin = 2,
            HeightRequest = 500,
            WidthRequest = 500,
            BackgroundColor = Color.White,
            Aspect = Aspect.AspectFit,
            VerticalOptions = LayoutOptions.Start,
        };
        myEditor = new Editor
        {
            Margin = 2,
            BackgroundColor = Color.White,
            AutoSize = EditorAutoSizeOption.TextChanges,
            Placeholder = "Descrição do Incidente",
        };

        camera = new Button
        {
            Margin = 10,
            Text = "Camera",
            BackgroundColor = Color.FromHex("#0061B1"),
            TextColor = Color.White,
            HorizontalOptions = LayoutOptions.Center,
            VerticalOptions = LayoutOptions.Center
        };
        gravar = new Button
        {
            Margin = 10,
            Text = "Gravar Incidência",
            BackgroundColor = Color.FromHex("#0061B1"),
            TextColor = Color.White,
            HorizontalOptions = LayoutOptions.Center,
            VerticalOptions = LayoutOptions.Center
        };
        stack = new StackLayout
        {
            BackgroundColor = Color.FromHex("#0061B1"),
            VerticalOptions = LayoutOptions.End,
            Margin = 1,
            Children =
        {
            myImage
        }
        };
        stack2 = new StackLayout
        {
            BackgroundColor = Color.FromHex("#0061B1"),
            VerticalOptions = LayoutOptions.End,
            Margin = 1,
            Children =
        {
            myEditor
        }
        };

        Grid.Children.Add(stack, 1, 4, 0, 1);
        Grid.Children.Add(stack2, 1, 4, 1, 2);
        Grid.Children.Add(camera, 1, 2, 2, 3);
        Grid.Children.Add(gravar, 3, 4, 2, 3);

        scroll = new ScrollView
        {
            Content = new StackLayout
            {
                VerticalOptions = LayoutOptions.End,
                Children =
            {
                Grid
            }
            }
        };
        Content = new StackLayout
        {
            Margin = 5,

            Children =
        {
            scroll,
        }
        };
    }`

And I inicialize my button like this:
camera.Clicked += Camera_Clicked;

`private async void Camera_Clicked(object sender, EventArgs e)
{
//App.certeza = 0;
//#region testeCamera
await CrossMedia.Current.Initialize();

        if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
        {
            await DisplayAlert("Erro!", "A camera já está a ser usada!", "Ok");
            return;
        }

        var files = await CrossMedia.Current.TakeVideoAsync(
            new StoreVideoOptions
            {
                SaveMetaData = true,

        });
        if (files == null)
            return;

        myImage.Source = ImageSource.FromStream(() =>
        {
            var stream = files.GetStream();
            files.Dispose();
            return stream;
        });
        //#endregion
    }`

I already create a folder with my file_paths.xml:
<?xml version="1.0" encoding="utf-8"?> `

And i added this to my AndroidManifest:
<provider android:name="android.support.v4.content.FileProvider"
android:authorities="MY_PACKAGE_NAME.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>

AND THIS ERROR KEEPS APPEARING!
System.ArgumentException: Unable to get file location. This most likely means that the file provider information is not set in your Android Manifest file. Please check documentation on how to set this up in your project.

Any help?


Viewing all articles
Browse latest Browse all 77050

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>