簡體   English   中英

使用 Xam.Plugin.Media 拍攝和存儲用戶照片的強制性要求

[英]Compulsary requirement to take and store users photo using Xam.Plugin.Media

我有一個 PCL 類型的應用程序,我正在使用Xam.Plugin.Media插件。 我需要它來確保用戶在繼續之前從相機提交照片。

為此,我從按鈕單擊事件中顯示相機頁面,並且我想確保如果用戶取消此應用程序再次啟動相機,這將重復直到存儲照片。

當前,當用戶取消相機時,我的應用程序屬於MainApplication文件的onActivityResumed方法

附上我的代碼照片,我的代碼

 private async void TakePicture()
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                await App.Current.MainPage.DisplayAlert("No Camera", ":( No camera available.", "Aceptar");
            }



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

            //IsRunning = true;


            if (file != null)
            {
                ImageSource = ImageSource.FromStream(() =>
                {
                    var stream = file.GetStream();
                    return stream;
                });
            }

            IsRunning = false;
        }

除了現在強迫用戶做任何事情通常是一個用戶體驗問題之外,這個問題仍然有一些優點。

這是我會考慮的方法,它涉及遞歸。

    private async void TakePicture()
    {
        await CrossMedia.Current.Initialize();

        if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
        {
            await App.Current.MainPage.DisplayAlert("No Camera", ":( No camera available.", "Aceptar");
        }

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

        //IsRunning = true;

        if (file != null)
        {
            ImageSource = ImageSource.FromStream(() =>
            {
                var stream = file.GetStream();
                return stream;
            });
        }
        else
        {
            // Recursion - I believe that this would continue until the file is not null, then it would carry on.
            TakePicture();
        }

        IsRunning = false;
    }

我不能說我經常使用遞歸,但我認為它可能在這里起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM