Android本地视频播放器开发--搜索本地视频(1)

这一章的主要内容是搜索手机本地视频,添加到ListView列表里,每一个表项含有这个视频的缩略图,视频的播放时间,视频的标题,在搜索本地视频(1)中我们先制作搜索功能。
Video.java--视频相关的属性类
[java] view plaincopy
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;  
<pre class="java" name="code">     
    }  
      
    public void setImage(LoadedImage image){  
        this.image = image;  
    }  
  
}</pre>  
<pre></pre>  
<p>AbstructProvider.java ---一个接口,来获取搜索的视频的一个集合</p>  
<pre class="java" name="code">package com.zhangjie.graduation.videopalyer.videofile;  
  
import java.util.List;  
  
public interface AbstructProvider {  
      
    public List<Video> getList();  
      
}</pre>  
<p><br>  
VideoProvider.java--- 实现AbstructProvider接口,通过cursor来搜索视频的相关信息</p>  
<pre class="java" name="code">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;  
    }  
  
}</pre>  
<p><br>  
最后在主类中使用如下代码来获取最终得到的视频相关信息集合</p>  
<pre class="java" name="code">AbstructProvider provider = new VideoProvider(this);  
List<Video>   listVideos = provider.getList();</pre>  
<p>在上面的listVideos包含了本地所有的视频的相关信息,下一章将会用到listVideos数据。<br>  
</p>  
<pre></pre>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值