Миниатюры видео в формах Xamarin

Есть ли способ получить эскиз видео с помощью Xamarin Forms?

Я использую плагин Xam.Plugin.Media, чтобы снимать и выбирать видео и сохранять их в определенном месте. Можно ли также сохранить эскиз видео?

// Выбираем видео

private async void BtnPick_Clicked (отправитель объекта, EventArgs e) {ожидание CrossMedia.Current.Initialize ();

        try
        {
            var file = await CrossMedia.Current.PickVideoAsync();
            if (file == null)
                return;
            await StoreVideos(file.GetStream());
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
        }
    }

// Снимаем видео

    private async void BtnTake_Clicked(object sender, EventArgs e)
    {
        var file = await CrossMedia.Current.TakeVideoAsync(new StoreVideoOptions

        {
            Name = "video.mp4",
            Directory = "DefaultVideos",
        });
        await StoreVideos(file.GetStream());

        if (file == null)
            return;
    }

    public async Task<string> StoreVideos(Stream videoStream)
    {
        var storageVideo = await new FirebaseStorage("adam-00000.appspot.com")
            .Child("ProfileVideos")
            .Child(App.UserID + "-" + App.VideoName + ".mp4")

            .PutAsync(videoStream);

        string imgurl = storageVideo;
        return imgurl;
    }

Я хочу захватить эскиз видео, сохранить его, а затем загрузить в Firebase.


person Vernon007    schedule 05.07.2019    source источник
comment
Для этого вы можете использовать сервер зависимости, вы можете создавать миниатюры видео с помощью ThumbnailUtils.CreateVideoThumbnailAsync(String, ThumbnailKind) Method на платформе Android. есть ссылка docs .microsoft.com / en-us / dotnet / api /   -  person Leon Lu - MSFT    schedule 05.07.2019
comment
Я новичок в Xamarin Forms. Где это разместить? [Android.Runtime.Register (android / media / ThumbnailUtils, ApiSince = 8, DoNotGenerateAcw = true)] открытый класс ThumbnailUtils: Java.Lang.Object   -  person Vernon007    schedule 08.07.2019


Ответы (1)


Нет, вы не добавляете [Android.Runtime.Register("android/media/ThumbnailUtils", ApiSince=8, DoNotGenerateAcw=true)] public class ThumbnailUtils : Java.Lang.Objec в свой код, вы просто добавляете этот using Android.Media; в свой код, а затем вызываете этот метод ThumbnailUtils.CreateVideoThumbnail(filePath,kind); для создания эскиза видео, подобного этой ссылке. https://stackoverflow.com/a/44304943/10627299

Примечание. Этот метод подходит только для платформы Android. Если вы используете формы, вы должны добиться этого с помощью службы зависимости.

person Leon Lu - MSFT    schedule 08.07.2019
comment
Спасибо, теперь я научился использовать службу зависимостей и должен открыть для себя множество областей. - person Vernon007; 09.07.2019