欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发之多媒体文件获取工具类实例【音频,视频,图片等】

程序员文章站 2023-11-28 21:56:10
本文实例讲述了android开发之多媒体文件获取工具类。分享给大家供大家参考,具体如下: package com.android.ocr.util; impor...

本文实例讲述了android开发之多媒体文件获取工具类。分享给大家供大家参考,具体如下:

package com.android.ocr.util;
import java.io.file;
import java.util.arraylist;
import java.util.list;
import android.content.context;
import android.database.cursor;
import android.graphics.bitmap;
import android.provider.mediastore;
/**
 * 根据mediastore查询信息
 * @project  app_readcard
 * @package  com.android.ocr.util
 * @author   chenlin
 * @version  1.0
 * @date    2013年6月16日
 * @note    todo
 */
public class mediastoreutil {
  private static final string tag = "mediastoreutil";
  /**
   * 查询音频文件名称
   *
   * @param context
   * @return
   */
  public static list<string> getaudionames(context context) {
    list<string> list = new arraylist<string>();
    cursor cursor = context.getcontentresolver().query(
        mediastore.audio.media.external_content_uri,
        new string[] { mediastore.audio.media._id, mediastore.audio.media.display_name, mediastore.audio.media.title,
            mediastore.audio.media.duration, mediastore.audio.media.artist, mediastore.audio.media.album,
            mediastore.audio.media.year, mediastore.audio.media.mime_type, mediastore.audio.media.size,
            mediastore.audio.media.data }, null, new string[] {}, null);
    while (cursor.movetonext()) {
      string filename = cursor.getstring(cursor.getcolumnindex(mediastore.audio.media.display_name));
      list.add(filename);
    }
    return list;
  }
  /**
   * 查询图片文件名称
   *
   * @param context
   * @return
   */
  public static list<string> getimagenames(context context) {
    list<string> list = new arraylist<string>();
    cursor cursor = context.getcontentresolver().query(
        mediastore.images.media.external_content_uri,
        new string[] { mediastore.images.media._id, mediastore.images.media.display_name, mediastore.images.media.title,
            mediastore.images.media.mime_type, mediastore.images.media.size, mediastore.images.media.data }, null,
        new string[] {}, null);
    while (cursor.movetonext()) {
      logger.i(tag, "filepath==" + mediastore.images.media.data);
      string filepath = cursor.getstring(cursor.getcolumnindex(mediastore.images.media.data));
      string filename = cursor.getstring(cursor.getcolumnindex(mediastore.images.media.display_name));
      list.add(filepath + "/" + filename);
    }
    return list;
  }
  /**
   * 查询图片文件
   *
   * @param context
   * @return
   */
  public static list<file> getimages(context context) {
    list<file> list = new arraylist<file>();
    cursor cursor = context.getcontentresolver().query(
        mediastore.images.media.external_content_uri,
        new string[] { mediastore.images.media._id, mediastore.images.media.display_name, mediastore.images.media.title,
            mediastore.images.media.mime_type, mediastore.images.media.size, mediastore.images.media.data }, null,
        new string[] {}, null);
    while (cursor.movetonext()) {
      string filepath = cursor.getstring(cursor.getcolumnindex(mediastore.images.media.data));
      logger.i(tag, "filepath==" + filepath);
      string filename = cursor.getstring(cursor.getcolumnindex(mediastore.images.media.display_name));
      //logger.i(tag, "filename==" + filename);
      file file = new file(filepath);
      list.add(file);
    }
    return list;
  }
  /**
   * 查询文件
   *
   * @param context
   * @return
   */
  public static list<file> getallfiles(context context) {
    list<file> list = new arraylist<file>();
    cursor cursor = context.getcontentresolver().query(
        mediastore.images.media.external_content_uri,
        new string[] { mediastore.images.media._id, mediastore.images.media.display_name, mediastore.images.media.title,
            mediastore.images.media.mime_type, mediastore.images.media.size, mediastore.images.media.data }, null,
        new string[] {}, null);
    while (cursor.movetonext()) {
      string filepath = cursor.getstring(cursor.getcolumnindex(mediastore.images.media.data));
      logger.i(tag, "filepath==" + filepath);
      string filename = cursor.getstring(cursor.getcolumnindex(mediastore.images.media.display_name));
      //logger.i(tag, "filename==" + filename);
      file file = new file(filepath);
      list.add(file);
    }
    return list;
  }
  /**
   * 获取所有的缩列图
   *
   * @param context
   * @return
   */
  public static bitmap[] getbitmaps(context context) {
    bitmap[] bitmaps;
    string[] projection = { mediastore.images.media._id, mediastore.images.media.data };
    cursor cursor = context.getcontentresolver().query(mediastore.images.media.external_content_uri, projection, null, null,
        mediastore.images.media._id);
    int count = cursor.getcount();
    int image_column_index = cursor.getcolumnindex(mediastore.images.media._id);
    bitmaps = new bitmap[count];
    for (int i = 0; i < count; i++) {
      cursor.movetoposition(i);
      int id = cursor.getint(image_column_index);
      bitmaps[i] = mediastore.images.thumbnails.getthumbnail(context.getcontentresolver(), id,
          mediastore.images.thumbnails.micro_kind, null);
    }
    return bitmaps;
  }
  /**
   * 查询图片缩列文件名称
   *
   * @param context
   * @return
   */
  public static list<string> getthumbnames(context context) {
    list<string> list = new arraylist<string>();
    cursor cursor = context.getcontentresolver().query(
        mediastore.images.thumbnails.external_content_uri,
        new string[] { mediastore.images.thumbnails._id, mediastore.images.thumbnails.data, mediastore.images.thumbnails.kind,
            mediastore.images.thumbnails.image_id }, null, new string[] {}, null);
    while (cursor.movetonext()) {
      string filename = cursor.getstring(cursor.getcolumnindex(mediastore.images.media.display_name));
      list.add(filename);
    }
    return list;
  }
  /**
   * 获得所有视频文件
   * @param context
   */
  public static arraylist<videoinfo> getvideoinfo(context context){
    string[] thumbcolumns = new string[]{
        mediastore.video.thumbnails.data,
        mediastore.video.thumbnails.video_id
    };
    string[] mediacolumns = new string[]{
        mediastore.video.media.data,
        mediastore.video.media._id,
        mediastore.video.media.title,
        mediastore.video.media.mime_type
    };
    //首先检索sdcard上所有的video
    cursor cursor = context.getcontentresolver().query(mediastore.video.media.external_content_uri, mediacolumns, null, null, null);
    arraylist<videoinfo> videolist = new arraylist<videoinfo>();
    if(cursor.movetofirst()){
      do{
        videoinfo info = new videoinfo();
        info.filepath = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.video.media.data));
        info.mimetype = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.video.media.mime_type));
        info.title = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.video.media.title));
        //获取当前video对应的id,然后根据该id获取其thumb
        int id = cursor.getint(cursor.getcolumnindexorthrow(mediastore.video.media._id));
        string selection = mediastore.video.thumbnails.video_id +"=?";
        string[] selectionargs = new string[]{
            id+""
        };
        cursor thumbcursor = context.getcontentresolver().query(mediastore.video.thumbnails.external_content_uri, thumbcolumns, selection, selectionargs, null);
        if(thumbcursor.movetofirst()){
          info.thumbpath = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.video.thumbnails.data));
        }
        //然后将其加入到videolist
        videolist.add(info);
      }while(cursor.movetonext());
    }
    return videolist;
  }
  static class videoinfo{
    string filepath;
    string mimetype;
    string thumbpath;
    string title;
  }
}

更多关于android相关内容感兴趣的读者可查看本站专题:《android多媒体操作技巧汇总(音频,视频,录音等)》、《android开发入门与进阶教程》、《android视图view技巧总结》、《android文件操作技巧汇总》、《android资源操作技巧汇总》及《android控件用法总结

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