android系统媒体库开发之视频

Android系统为我们建立起多媒体数据库之后,便把多媒体常用的信息,比如歌曲名、文件大小、播放时长、专辑、歌手等常用信息保存在了数据库里,那我们可以直接用多媒体库中的数据,完成这个需求。虽然我们需要用多媒体库,但是我们不能直接操作。Android为这些常用的需要共享的数据(多媒体和联系人等),创建了ContentProvider,因此,如果我们想获取到这些信息,我们就需要用ContentProvider。

bean:

public class Video extends FtpBaseBean 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 locPath;
    private String size;
    private String duration;
    private Bitmap image;
    public boolean isChecked = false;//是否被选中
    private String remotePath = "/video/";

    public boolean isChecked() {
        return isChecked;
    }

    public void setIsChecked(boolean isChecked) {
        this.isChecked = isChecked;
    }

    /**
     *
     */
    public Video() {
        super();
    }

    /**
     * @param id
     * @param title
     * @param album
     * @param artist
     * @param displayName
     * @param mimeType
     * @param size
     * @param duration
     */
    public Video(int id, String title, String album, String artist,
                 String displayName, String mimeType, String locPath, String size,
                 String duration) {
        super();
        this.id = id;
        this.title = title;
        this.album = album;
        this.artist = artist;
        this.displayName = displayName;
        this.mimeType = mimeType;
        this.locPath = locPath;
        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 getSize() {
        return size;
    }

    public void setSize(String size) {
        this.size = size;
    }

    public String getDuration() {
        return duration;
    }

    public void setDuration(String duration) {
        this.duration = duration;
    }

    public Bitmap getImage(){
        return image;
    }

    public void setImage(Bitmap image){
        this.image = image;
    }

    @Override
    public String toString() {
        return "Video{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", album='" + album + '\'' +
                ", artist='" + artist + '\'' +
                ", displayName='" + displayName + '\'' +
                ", mimeType='" + mimeType + '\'' +
                ", path='" + locPath + '\'' +
                ", size=" + size +
                ", duration=" + duration +
                ", image=" + image +
                '}';
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getRemotePath() {
        return remotePath;
    }

    public void setRemotePath(String remotePath) {
        this.remotePath = remotePath;
    }

    public String getLocPath() {
        return locPath;
    }

    public void setLocPath(String locPath) {
        this.locPath = locPath;
    }

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }

    public long getProgress() {
        return progress;
    }

    public void setProgress(long progress) {
        this.progress = progress;
    }

    public long getMax() {
        return max;
    }

    public void setMax(long max) {
        this.max = max;
    }
}
util:

public class VideoUtils {
    private Context context;

    public VideoUtils(Context context) {
        this.context = context;
    }

    public static ArrayList<Video> getVideos() {
        ArrayList<Video> datas = null;
        Cursor cursor = UIUtils.getContext().getContentResolver().query(
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null,
                null, null);
        if (cursor != null) {
            datas = new ArrayList<Video>();
            int i = 0;
            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));//显示的名字    架子鼓cobus01.flv
                String mimeType = cursor
                        .getString(cursor
                                .getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));//    video/flv   、   video/mp4
                String path = cursor
                        .getString(cursor
                                .getColumnIndexOrThrow(MediaStore.Video.Media.DATA));//路径   /storage/emulated/0/新建文件夹/架子鼓cobus01.flv
                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, getMusicSize(size), getMusicTime(duration));
                datas.add(video);
             i++;
            }
            cursor.close();
        }
        return datas;
    }

    /**
     * 获取视频播放时长,需要转换
     *
     * @return
     */
    private static String getMusicTime(long duration) {
        if (duration == 0) {
            return "00:00";
        } else {
            int musicTime = (int) (duration / 1000);
            return musicTime / 60 + ":" + musicTime % 60;
        }
    }

    /**
     * 获取视频播放大小,需要转换
     *
     * @return
     */
    private static String getMusicSize(long size) {
        if (size == 0) {
            return "0.00M";
        }else{
            return (size / 1024f / 1024f + "").substring(0, 4) + "M";
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值