Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android本地視頻播放器開發--搜索本地視頻(1)

Android本地視頻播放器開發--搜索本地視頻(1)

編輯:關於Android編程

   這一章的主要內容是搜索手機本地視頻,添加到ListView列表裡,每一個表項含有這個視頻的縮略圖,視頻的播放時間,視頻的標題,在搜索本地視頻(1)中我們先制作搜索功能。

Video.java--視頻相關的屬性類

[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; 
<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> 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved