Video sketch returns null

I create thumbnails from videos stored on my SD card, displaying thumbnails and their names in a grid. On the selected element, the grid event opens a dialog box and sets x, y, right, lower positions, then inserts it into the main action. I received video files and tried to create a sketch using the media store, I also get a thumbnail as a bitmap, but the bitmap is null. In grid mode, the video names are displayed, and I can select the appropriate thumbnail and give positions that can also set a thumbnail for the main action. The problem is that the bitmap has a null and bitmap that is not displayed (a text video name is displayed). What is the problem? Can't I figure it out? Plz help me? My code is below. thanks in advance.

if (f.isFile()) { if (fName.endsWith(".mpg") || fName.endsWith(".mov") || fName.endsWith(".wmv") || fName.endsWith(".rm") || fName.endsWith(".mp4")) { tv.setText(fName); path = f.getAbsolutePath(); System.out.println("Video file path=>"+path); thumb = ThumbnailUtils.createVideoThumbnail(f.getAbsolutePath(),MediaStore.Video.Thumbnails.MICRO_KIND); if(thumb==null) { /**Every time it printing null**/ System.out.println("Thumb is null"); } iv.setImageBitmap(thumb); 
+6
source share
3 answers

From ThumbnailUtils.createVideoThumbnail documentation: May return null if the video is corrupt or the format is not supported.

By default, almost all supported formats are mp4 and 3gp. See here: http://developer.android.com/guide/appendix/media-formats.html for a complete list of default media.

+3
source

If you create a thumbnail from video from an SD card, this will create ThumbnailUtils.createVideoThumbnail , otherwise use the cursor.

See this example .

+1
source
 Try this code. It is getting the thumbnail of videos from urls. instead of pass the path of sd card .it will help you . Dont forgot to add internet permission in manifest file. public class VideoThumbnailActivity extends Activity { public static final String Downloader = null; static String uri1="http://daily3gp.com/vids/lucky_guy.3gp"; static String uri2="http://daily3gp.com/vids/reporter_hit_by_plane.3gp"; static String uri3="http://daily3gp.com/vids/motorcycle_wipesout_explodes.3gp"; static String uri4="http://commonsware.com/misc/test2.3gp"; public static String uri_array[]={uri1,uri2,uri3,uri4,uri1,uri2,uri3,uri4,uri1,uri2,uri3,uri4}; ImageView imageView; String url; Gallery ga1,ga2; /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imageView = (ImageView)findViewById(R.id.imageView); ga1 = (Gallery)findViewById(R.id.gallery1); ga1.setAdapter(new ImageAdapter(getApplicationContext())); imageView.setImageBitmap(ThumbnailUtils.createVideoThumbnail(uri_array[0], MediaStore.Video.Thumbnails.FULL_SCREEN_KIND)); //on click event on gallery ga1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View view, final int position,long arg3) { imageView.setImageBitmap(ThumbnailUtils.createVideoThumbnail(uri_array[position], MediaStore.Video.Thumbnails.FULL_SCREEN_KIND)); //on click event on imageview to play video imageView.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub Intent intent = new Intent(getApplicationContext(),PlayActivity.class); intent.putExtra("path",uri_array[position]); startActivity(intent); } }); } }); } public class ImageAdapter extends BaseAdapter { private Context ctx; int imageBackground; public ImageAdapter(Context c) { ctx = c; TypedArray ta = obtainStyledAttributes(R.styleable.Gallery1); imageBackground = ta.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 1); ta.recycle(); } @Override public int getCount() { return uri_array.length; } @Override public Object getItem(int arg0) { return arg0; } @Override public long getItemId(int arg0) { return arg0; } @Override public View getView(int position, View view, ViewGroup arg2) { ImageView iv = new ImageView(ctx); Bitmap curThumb = null; curThumb = ThumbnailUtils.createVideoThumbnail(uri_array[position],MediaStore.Video.Thumbnails.FULL_SCREEN_KIND); iv.setImageBitmap(curThumb); iv.setScaleType(ImageView.ScaleType.FIT_XY); iv.setLayoutParams(new Gallery.LayoutParams(150,120)); iv.setBackgroundResource(imageBackground); return iv; } } 

let me know if your problem is solved or not.

-1
source

All Articles