0

私はListViewを持っていて、ビデオフォームにURLを入力したいと思います。 ListViewアダプタでURLから簡単に画像を表示できますが、ビデオサムネイルをロードするにはどうすればいいですか?Video ThumbnailをListViewアダプタのVideo Urlからロードする方法

+0

あなたが呼び出したJSON応答またはAPIを共有できますか。 –

+0

はいビデオと画像の正確なパスはすべて取得していますが、画像とハウツーの画像は表示されません –

+1

画像に「Uri」を付けると、Picassoのような多くの画像読み込みライブラリがサムネイルを取得できます。 – CommonsWare

答えて

5

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(); 
+0

より多くのthumnailsをロードするために、この内部リストビューアアダプタを使用できますか? –

+0

@ listviewadapterで1つのビデオサムネイルを読み込むことはできますが、同じlistviewadapter内の他のビデオのサムネイルを読み込むことはできません –

+0

ビットマップを受け取った後にコールバックを実装し、アダプタのイメージビューを更新する必要があります。 –