Kotlin - Отображение миниатюры видео с существующих YouTube, Twitch, видео микшера и прямых трансляций - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь отобразить видео миниатюру поста. Пользователь может ввести ссылку с видео Youtube, Mixer и Twitch, и я нуб, поэтому я не уверен, как получить реальную миниатюру из этих видео.

Вот код, который я Я использую прямо сейчас, он работает хорошо, но я не хочу, чтобы на всех видео отображались одни и те же миниатюры, поэтому я хотел бы показать фактический эскиз.

when (post.type){
            "twitch" -> {
                post_image.setImageResource(R.drawable.twitch)
            }
            "youtube" -> {
                post_image.setImageResource(R.drawable.youtube)
            }
            "mixer" -> {
                post_image.setImageResource(R.drawable.mixer)
            }

            else -> {
                post_image.setImageResource(R.drawable.image_placeholder)
            }
        }

Ответы [ 2 ]

3 голосов
/ 09 марта 2020

Как вы упомянули,

Я не хочу, чтобы на всех видео отображались одинаковые миниатюры, поэтому я хотел бы показать фактический эскиз.

Вам нужно использовать идентификатор видео, чтобы получить эскиз видео, как показано ниже:

String url = "https://www.youtube.com/watch?v=en7IK3iH3wI"
String videoId = url.split("v=")[1]; //for this, the extracted id is "en7IK3iH3wI"

String tempThumbnailDefault = "http://img.youtube.com/vi/"+videoId+"/default.jpg" //default quality thumbnail
String tempThumbnailStandard = "http://img.youtube.com/vi/"+videoId+"/sddefault.jpg" 
//standard thumbnail
String tempThumbnailInMaxRes = "http://img.youtube.com/vi/"+videoId+"/maxresdefault.jpg" 
//maximum resolution thumbnail
String tempThumbnailInMQ = "http://img.youtube.com/vi/"+videoId+"/mqdefault.jpg" //medium quality thumbnail
String tempThumbnailInHQ = "http://img.youtube.com/vi/"+videoId+"/hqdefault.jpg"
//high quality thumbnail

Затем вы можете использовать этот путь для загрузки изображений с Glide или Picasso как показано ниже:

//If using Glide
Glide.with(this)
     .load(tempThumbnailInHQ)
     .into(yourImageView);

//If using Picasso        
Picasso.with(context)
       .load(tempThumbnailInHQ)
       .into(yourImageView);

Для извлечения миниатюры из Twitch вам необходимо использовать Twitch API и зарегистрированный аккаунт на https://glass.twitch.tv. Пожалуйста, ознакомьтесь с принятым ответом , чтобы узнать, как его использовать.

Надеюсь, это поможет!

1 голос
/ 09 марта 2020

Если у вас есть URL-адрес видео, вы можете использовать Glide для миниатюры видео. Вы можете проверить do c здесь https://github.com/bumptech/glide

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...