Android视频开发简易技巧
发布时间:2021-12-18 18:06:11 所属栏目:教程 来源:互联网
导读:一些简易的视频开发代码。 一、视频的读取,显示 安卓提供了一个VideoView类,用起来很方便。如果仅仅是播放视频,这个类足够用了。但是扩展性不好。 它继承自SurfaceView并实现了MediaPlayerControl接口,并封装了一个MediaPlayer对象。如果有兴趣可以仿照他
一些简易的视频开发代码。 一、视频的读取,显示 安卓提供了一个VideoView类,用起来很方便。如果仅仅是播放视频,这个类足够用了。但是扩展性不好。 它继承自SurfaceView并实现了MediaPlayerControl接口,并封装了一个MediaPlayer对象。如果有兴趣可以仿照他自己实现一个,方便扩展。 文章有很多,不赘述了。 视频读取最麻烦是缩略图的显示。尤其是在2.2之前。2.2提供了一个ThumbnailUtils类,可以方便的取到缩略图,但是之前的版本没有。需要手动取。 不多说了,上代码。 String whereClause = MediaStore.Video.Media.DATA + " = '" + "/sdcard/DCIM/Camera/2011-03-12_11-07-40_252.3gp" + "'"; Cursor cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Video.Media._ID }, whereClause, null, null); if (cursor == null || cursor.getCount() == 0) { return; } cursor.moveToFirst(); int videoId = cursor.getInt(cursor.getColumnIndex(MediaStore.Video.Media._ID)); BitmapFactory.Options options = new BitmapFactory.Options(); options.inDither = false; options.inPreferredConfig = Bitmap.Config.ARGB_8888; Bitmap bm = Thumbnails.getThumbnail(getContentResolver(), videoId, Images.Thumbnails.MINI_KIND, options); 2.2则做了封装。 二、视频的保存 保存视频需要把视频保存到媒体库中。代码: ContentValues values = new ContentValues(3); long current = System.currentTimeMillis(); values.put(MediaStore.Video.Media.TITLE, "video" + f.getName()); values.put(MediaStore.Video.Media.DATE_ADDED, (int) (current / 1000)); values.put(MediaStore.Video.Media.MIME_TYPE, "video/3gpp"); values.put(MediaStore.Video.Media.DATA, f.getAbsolutePath()); ContentResolver contentResolver = getContentResolver(); Uri base = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; Uri newUri = contentResolver.insert(base, values); sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, newUri)); ![]() (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |