Android编程实现获取多媒体库视频、音频、图片的方法

Android编程实现获取多媒体库视频、音频、图片的方法,第1张

概述本文实例讲述了Android编程实现获取多媒体库视频、音频、图片的方法。分享给大家供大家参考,具体如下:

本文实例讲述了AndroID编程实现获取多媒体库视频、音频、图片的方法。分享给大家供大家参考,具体如下:

从媒体库中查找音频、视频、图片文件的相关信息,并获取视频、图片、专辑图片的缩略图
和一些文件 *** 作

package com.uwatch.swconnectservice.util;import java.io.file;import java.io.fileDescriptor;import java.io.fileinputStream;import java.io.fileNotFoundException;import java.io.IOException;import java.io.inputStream;import androID.content.ContentResolver;import androID.content.ContentUris;import androID.content.Context;import androID.content.Intent;import androID.database.Cursor;import androID.graphics.Bitmap;import androID.graphics.BitmapFactory;import androID.media.MediaScannerConnection;import androID.media.MediaScannerConnection.OnScanCompletedListener;import androID.media.thumbnailUtils;import androID.net.Uri;import androID.os.ParcelfileDescriptor;import androID.provIDer.MediaStore;import androID.util.Log;public class fileOper {public static final String [] IMAGE_ColUMN = {MediaStore.Images.Media.DATA,MediaStore.Images.Media.SIZE};public static final String [] AUdio_ColUMN = {MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.SIZE,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media._ID,MediaStore.Audio.Media.ALBUM_ID};public static final String [] VIDEO_ColUMN = {MediaStore.VIDeo.Media.DATA,MediaStore.VIDeo.Media.SIZE,MediaStore.Audio.Media.DURATION};private static final Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");///创建文件夹public static voID createfile(String path){file file = new file(path);if(!file.exists()){file.mkdirs();}}//删除文件,并刷新媒体库public static voID deletefile(String path,final Context context,final int type){file file = new file(path);if(file.exists()){if(file.isfile()){file.delete();}else if(file.isDirectory()){deleteDirs(file);}}///监听媒体库刷新情况MediaScannerConnection.scanfile(context,new String[]{"/storage/sdcard0"},null,new OnScanCompletedListener(){@OverrIDepublic voID onScanCompleted(String path,Uri uri) {////刷新完后做相应处理if(type == 1){String Lists = fileOper.getVIDeofile(context);SentMessage.SendToBluetooth(context,SentMessage.WATCH_PATH,Lists);}else if(type == 2){String Lists = fileOper.getAudiofiles(context);SentMessage.SendToBluetooth(context,Lists);}else if(type == 3){String Lists = fileOper.getimagefiles(context);SentMessage.SendToBluetooth(context,Lists);}}});/////}public static voID deleteDirs(file file){if(file.isDirectory()){file[]files = file.Listfiles();if(files == null || files.length == 0){file.delete();}else {for(int i = 0;i<files.length;i++){if(files[i].isDirectory()){deleteDirs(files[i]);}else{files[i].delete();}}}file.delete();}}///获取相应目录下的文件、文件夹public static String getfileInfoList(String path) {file file = new file(path);String Lists = "";file[] files = file.Listfiles();if(files != null){if(files.length>0){for(int i = 0;i<files.length;i++){if(file.exists()){if(files[i].isfile()){Lists = Lists+"1,"+Util.encodeBase64(files[i].getname())+","+Util.encodeBase64(files[i].getabsolutePath())+","+getfileSize(files[i])+"}";}else if(files[i].isDirectory()){Lists = Lists+"0,0}";} }}}}return Lists;}////查询视频文件public static String getVIDeofile(Context context){ContentResolver resolver = context.getContentResolver();Cursor cursor = resolver.query(MediaStore.VIDeo.Media.EXTERNAL_CONTENT_URI,VIDEO_ColUMN,null);String tp = "vIDeo}";if(cursor != null){if(cursor.movetoFirst()){String path = cursor.getString(cursor.getColumnIndex(VIDEO_ColUMN[0]));String size = cursor.getString(cursor.getColumnIndex(VIDEO_ColUMN[1]));String duration = cursor.getString(cursor.getColumnIndex(VIDEO_ColUMN[2]));//String thumbnail = Util.bitmaptoString(getVIDeothumbnail(path,96,MediaStore.Images.thumbnails.MICRO_KIND));//tp = tp+Util.encodeBase64(path)+","+size+","+duration+","+thumbnail+"}";tp = tp+Util.encodeBase64(path)+","+duration+"}";while(cursor.movetoNext()){path = cursor.getString(cursor.getColumnIndex(VIDEO_ColUMN[0]));size = cursor.getString(cursor.getColumnIndex(VIDEO_ColUMN[1]));duration = cursor.getString(cursor.getColumnIndex(VIDEO_ColUMN[2]));//tp = tp+Util.encodeBase64(path)+","+duration+"}";}}}return tp;}//查询音频文件public static String getAudiofiles(Context context){ContentResolver resolver = context.getContentResolver();Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,AUdio_ColUMN,null);String tp = "audio}";if(cursor != null){if(cursor.movetoFirst()){String path = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[0]));String size = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[1]));String duration = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[2]));/*String ID = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[3]));String albumID = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[4]));Bitmap bt = getMusicBitemp(context,Long.valueOf(ID),Long.valueOf(albumID));String thumbnail = "audio";if(bt != null){thumbnail = Util.bitmaptoString(getAudiothumbnail(bt,96));}tp = tp+Util.encodeBase64(path)+","+thumbnail+"}";*/tp = tp+Util.encodeBase64(path)+","+duration+"}";while(cursor.movetoNext()){path = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[0]));size = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[1]));duration = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[2]));/*ID = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[3]));albumID = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[4]));bt = getMusicBitemp(context,Long.valueOf(albumID));thumbnail = "audio";if(bt != null){thumbnail = Util.bitmaptoString(getAudiothumbnail(bt,"+duration+"}";}}}return tp;}////查询图片public static String getimagefiles(Context context){ContentResolver resolver = context.getContentResolver();Cursor cursor = resolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,IMAGE_ColUMN,null);String tp = "image}";if(cursor != null){if(cursor.movetoFirst()){String path = cursor.getString(cursor.getColumnIndex(IMAGE_ColUMN[0]));String size = cursor.getString(cursor.getColumnIndex(IMAGE_ColUMN[1]));/*String thumbnail = Util.bitmaptoString(getimagethumbnail(path,96));tp = tp+Util.encodeBase64(path)+","+size+"}";while(cursor.movetoNext()){path = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[0]));size = cursor.getString(cursor.getColumnIndex(AUdio_ColUMN[1]));/*thumbnail = Util.bitmaptoString(getimagethumbnail(path,"+size+"}";}}}return tp;}///获取音频文件专辑图片public static Bitmap getMusicBitemp(Context context,Long songID,Long albumID) {Bitmap bm = null;if (albumID < 0 && songID < 0) {throw new IllegalArgumentException("Must specify an album or a song ID");}try {if (albumID < 0) {Uri uri = Uri.parse("content://media/external/audio/media/"+ songID + "/albumart");ParcelfileDescriptor pfd = context.getContentResolver().openfileDescriptor(uri,"r");if (pfd != null) {fileDescriptor fd = pfd.getfileDescriptor();bm = BitmapFactory.decodefileDescriptor(fd);}} else {Uri uri = ContentUris.withAppendedID(sArtworkUri,albumID);ParcelfileDescriptor pfd = context.getContentResolver().openfileDescriptor(uri,"r");if (pfd != null) {fileDescriptor fd = pfd.getfileDescriptor();bm = BitmapFactory.decodefileDescriptor(fd);} else {return null;}}} catch (fileNotFoundException ex) {return null;}return bm;}////获取图片缩略图public static Bitmap getimagethumbnail(String imagePath,int wIDth,int height) { Bitmap bitmap = null; BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; bitmap = BitmapFactory.decodefile(imagePath,options); options.inJustDecodeBounds = false; int h = options.outHeight; int w = options.outWIDth; int beWIDth = w / wIDth; int beHeight = h / height; int be = 1; if (beWIDth < beHeight) { be = beWIDth; } else { be = beHeight; } if (be <= 0) { be = 1; } options.inSampleSize = be; bitmap = BitmapFactory.decodefile(imagePath,options); bitmap = thumbnailUtils.extractthumbnail(bitmap,wIDth,height,thumbnailUtils.OPTIONS_RECYCLE_input); return bitmap; } ////获取音频专辑图片的缩略图public static Bitmap getAudiothumbnail(Bitmap bitmap,int height) { BitmapFactory.Options options = new BitmapFactory.Options(); int h = bitmap.getHeight(); int w = bitmap.getWIDth(); int beWIDth = w / wIDth; int beHeight = h / height; int be = 1; if (beWIDth < beHeight) { be = beWIDth; } else { be = beHeight; } if (be <= 0) { be = 1; } bitmap = thumbnailUtils.extractthumbnail(bitmap,thumbnailUtils.OPTIONS_RECYCLE_input); return bitmap; } /////获取视频文件缩略图public static Bitmap getVIDeothumbnail(String vIDeoPath,int height,int kind) { Bitmap bitmap = null; bitmap = thumbnailUtils.createVIDeothumbnail(vIDeoPath,kind); System.out.println("w"+bitmap.getWIDth()); System.out.println("h"+bitmap.getHeight()); bitmap = thumbnailUtils.extractthumbnail(bitmap,thumbnailUtils.OPTIONS_RECYCLE_input); return bitmap; } ///获取文件大小public static int getfileSize(file file){inputStream is=null;int size=0;try {is=new fileinputStream(file);size= is.available();} catch (fileNotFoundException e) {// Todo auto-generated catch blocke.printstacktrace();}catch (IOException e) {// Todo auto-generated catch blocke.printstacktrace();}finally{if(is!=null){try {is.close();} catch (IOException e) {// Todo auto-generated catch blocke.printstacktrace();}}}return size;}}

更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android多媒体 *** 作技巧汇总(音频,视频,录音等)》、《Android视图View技巧总结》、《Android编程之activity *** 作技巧总结》、《Android *** 作json格式数据技巧总结》、《Android资源 *** 作技巧汇总》及《Android控件用法总结》

希望本文所述对大家AndroID程序设计有所帮助。

您可能感兴趣的文章:Android开发之多媒体文件获取工具类实例【音频,图片等】Android多媒体之VideoView视频播放器Android多媒体教程之播放视频的四种方法Android开发之MediaPlayer多媒体(音频,视频)播放工具类Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等 *** 作功能】Android中简单调用图片、视频、音频、录音和拍照的方法android 获取视频,图片缩略图的具体实现Android获取SD卡上图片和视频缩略图的小例子Android编程获取图片和视频缩略图的方法Android如何获取图片或视频略缩图android提取视频多张图片和视频信息实例 总结

以上是内存溢出为你收集整理的Android编程实现获取多媒体库视频、音频、图片的方法全部内容,希望文章能够帮你解决Android编程实现获取多媒体库视频、音频、图片的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1143084.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存