У меня есть ListView
, и я хочу заполнить его видеороликом URL-адреса. Я могу легко показать изображения в адаптере ListView из URL-адреса, но как загрузить миниатюру видео?Как загрузить видео Thumbnail из видео Url в адаптере ListView
ответ
Вы можете использовать MediaMetadataRetriever, чтобы получить видеоролик.
new AsyncTask<Void, Void, Bitmap>() {
@Override
protected Bitmap doInBackground(Void... params) {
Bitmap bitmap = null;
String videoPath = "http://techslides.com/demos/sample-videos/small.mp4";
MediaMetadataRetriever mediaMetadataRetriever = null;
try {
mediaMetadataRetriever = new MediaMetadataRetriever();
if (Build.VERSION.SDK_INT >= 14)
// no headers included
mediaMetadataRetriever.setDataSource(videoPath, new HashMap<String, String>());
else
mediaMetadataRetriever.setDataSource(videoPath);
// mediaMetadataRetriever.setDataSource(videoPath);
bitmap = mediaMetadataRetriever.getFrameAtTime();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (mediaMetadataRetriever != null)
mediaMetadataRetriever.release();
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if (bitmap != null)
((ImageView) findViewById(R.id.your_image_id)).setImageBitmap(bitmap);
}
}.execute();
Могу ли я использовать этот внутренний адаптер listview для загрузки большего количества загрузок? –
@ Он может загружать один видеоролик в listviewadapter, но не может загружать больше потоков для других видеороликов в один и тот же listviewadapter. –
Вы должны реализовать обратный вызов после получения растрового изображения и обновления изображения вашего адаптера. –
Вы можете поделиться своим ответом JSON или API, который вы назвали.! –
Да, я получаю все точные пути видео и изображений, но изображения, как и видеоролики не отображаются –
Многие библиотеки загрузки изображений, такие как Picasso, могут получить миниатюру для вас, когда вы предоставите 'Uri' видео , – CommonsWare