这一章的主要内容是搜索手机本地视频,添加到ListView列表里,每一个表项含有这个视频的缩略图,视频的播放时间,视频的标题,在搜索本地视频(1)中我们先制作搜索功能。

Video.java--视频相关的属性类

package com.zhangjie.graduation.videopalyer.videofile;import java.io.Serializable;import com.zhangjie.graduation.videopalyer.component.LoadedImage;public class Video implements Serializable{    /** *  */private static final long serialVersionUID = -7920222595800367956L;private int id;    private String title;    private String album;    private String artist;    private String displayName;    private String mimeType;    private String path;    private long size;    private long duration;    private LoadedImage image;    /**     *      */    public Video() {        super();    }    /**     * @param id     * @param title     * @param album     * @param artist     * @param displayName     * @param mimeType     * @param data     * @param size     * @param duration     */    public Video(int id, String title, String album, String artist,            String displayName, String mimeType, String path, long size,            long duration) {        super();        this.id = id;        this.title = title;        this.album = album;        this.artist = artist;        this.displayName = displayName;        this.mimeType = mimeType;        this.path = path;        this.size = size;        this.duration = duration;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }    public String getAlbum() {        return album;    }    public void setAlbum(String album) {        this.album = album;    }    public String getArtist() {        return artist;    }    public void setArtist(String artist) {        this.artist = artist;    }    public String getDisplayName() {        return displayName;    }    public void setDisplayName(String displayName) {        this.displayName = displayName;    }    public String getMimeType() {        return mimeType;    }    public void setMimeType(String mimeType) {        this.mimeType = mimeType;    }    public String getPath() {        return path;    }    public void setPath(String path) {        this.path = path;    }    public long getSize() {        return size;    }    public void setSize(long size) {        this.size = size;    }    public long getDuration() {        return duration;    }    public void setDuration(long duration) {        this.duration = duration;    }        public LoadedImage getImage(){    return image;
       }        public void setImage(LoadedImage image){    this.image = image;    }}

AbstructProvider.java ---一个接口,来获取搜索的视频的一个集合

package com.zhangjie.graduation.videopalyer.videofile;import java.util.List;public interface AbstructProvider {    public List<Video> getList();    }


VideoProvider.java--- 实现AbstructProvider接口,通过cursor来搜索视频的相关信息

package com.zhangjie.graduation.videopalyer.videofile;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.provider.MediaStore;public class VideoProvider implements AbstructProvider {    private Context context;        public VideoProvider(Context context) {        this.context = context;    }        @Override    public List<Video> getList() {        List<Video> list = null;        if (context != null) {            Cursor cursor = context.getContentResolver().query(                    MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null,                    null, null);            if (cursor != null) {                list = new ArrayList<Video>();                while (cursor.moveToNext()) {                    int id = cursor.getInt(cursor                            .getColumnIndexOrThrow(MediaStore.Video.Media._ID));                    String title = cursor                            .getString(cursor                                    .getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));                    String album = cursor                            .getString(cursor                                    .getColumnIndexOrThrow(MediaStore.Video.Media.ALBUM));                    String artist = cursor                            .getString(cursor                                    .getColumnIndexOrThrow(MediaStore.Video.Media.ARTIST));                    String displayName = cursor                            .getString(cursor                                    .getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME));                    String mimeType = cursor                            .getString(cursor                                    .getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));                    String path = cursor                            .getString(cursor                                    .getColumnIndexOrThrow(MediaStore.Video.Media.DATA));                    long duration = cursor                            .getInt(cursor                                    .getColumnIndexOrThrow(MediaStore.Video.Media.DURATION));                    long size = cursor                            .getLong(cursor                                    .getColumnIndexOrThrow(MediaStore.Video.Media.SIZE));                    Video video = new Video(id, title, album, artist, displayName, mimeType, path, size, duration);                    list.add(video);                }                cursor.close();            }        }        return list;    }}


最后在主类中使用如下代码来获取最终得到的视频相关信息集合

AbstructProvider provider = new VideoProvider(this);List<Video>   listVideos = provider.getList();

在上面的listVideos包含了本地所有的视频的相关信息,下一章将会用到listVideos数据。

   

更多相关文章

  1. Andriod视频http://pan.baidu.com/share/link?shareid=7300&uk=3
  2. 让Android应用程序申请获取ROOT权限
  3. android 唯一识别码笔记
  4. Android(安卓)HTML5 Video视频标签自动播放与自动全屏问题解决
  5. Android(安卓)NDK开发之旅28--NDK-FFmpeg视频解码
  6. 视频播放拖动进度时间定位不准问题
  7. 【Android】深入理解Android中的自定义属性
  8. 可用手势切换播放节目的android视频播放器
  9. 获取手机的视频和图片的缩略图

随机推荐

  1. android 访问本机ip
  2. android Path 和 PathMeasure 进阶
  3. Android(安卓)弹出菜单(类iOS UIMenuCont
  4. android AChartEngine学习
  5. Android入门教程(三十四)------之多级树
  6. 解析Android中string-array数据源的简单
  7. Android(安卓)使用全局变量
  8. Android程序的构建块
  9. Android(安卓)sdcard 操作
  10. Content Provider加载原理