7

私のアプリでは、res/rawフォルダーに保存されているビデオサムネイルを表示する必要があります。私はそれに関して検索しました。次のコードを取得します。

int id = **"The Video's ID"**
ImageView iv = (ImageView ) convertView.findViewById(R.id.imagePreview);
ContentResolver crThumb = getContentResolver();
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 1;
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb, id,    MediaStore.Video.Thumbnails.MICRO_KIND, options);
iv.setImageBitmap(curThumb);

このコードによって、私はSDカードからビデオサムネイルを取得します。ただし、res/rawフォルダーからのビデオにはビデオサムネイルが表示されません。私は長い間試しましたが、解決策を見つけることができませんでした。私は次のように試しました。

配列を作成してリソースID(例:)を保存し、int[] videoid={R.raw.vi1,...}そのIDをに配置します MediaStore.Video.Thumbnails.getThumbnail(crThumb, videoid[position], MediaStore.Video.Thumbnails.MICRO_KIND, options);.

私を助けてください。前もって感謝します。

4

3 に答える 3

19

次のように、ビデオからフレームを取り出すことができます。

Uri  videoURI = Uri.parse("android.resource://" + getPackageName() +"/"
        +R.raw.cashword_video);
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(this, videoURI);
Bitmap bitmap = retriever
        .getFrameAtTime(100000,MediaMetadataRetriever.OPTION_PREVIOUS_SYNC);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
于 2013-02-11T20:56:19.327 に答える
2

アプリの res/raw フォルダーにある動画は、Android Media Content Provider によって管理されていないため、そこからサムネイルを取得することはできません。

または、SD に通常のファイルとして保存してから、メディア プロバイダーにサムネイルを依頼するか、ThumbnailUtils.createVideoThumbnailクラスを介して直接作成することもできます (Android 2.2 以降のみ) 。

于 2011-10-12T16:25:14.377 に答える