Android本地视频播放器开发--搜索本地视频(1)
这一章的主要内容是搜索手机本地视频,添加到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;}@Overridepublic 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数据。
Android本地视频播放器开发--搜索本地视频(1)相关推荐
- Android本地视频播放器开发 - 搜索本地视频(1)
这一章的主要内容是搜索手机本地视频,添加到ListView列表里,每一个表项含有这个视频的缩略图,视频的播放时间,视频的标题,在搜索本地视频(1)中我们先制作搜索功能. Video.java--视 ...
- android 编译 sdl,SDL编译 - Android本地视频播放器开发_Linux编程_Linux公社-Linux系统门户网站...
在上一章 Android本地视频播放器开发--ffmpeg解码视频文件中的音频(2)[http://www.linuxidc.com/Linux/2013-06/85955p5.htm]中使用Ope ...
- Android本地视频播放器开发--SDL编译
在上一章 Android本地视频播放器开发--ffmpeg解码视频文件中的音频(2)中使用OpenSL ES来播放视频的声音,遗留的问题是声音的不同步,由于视频实现部分也要同步,而且音视频也要同步,所 ...
- 实现在Android本地视频播放器开发
在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片.标题.时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获 ...
- Android本地视频播放器开发--NDK编译FFmpeg
在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片.标题.时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获 ...
- Android本地视频播放器开发--视频解码
在上一章Android本地视频播放器开发--SDL编译编译中编译出sdl的支持库,当时我们使用的2.0,但是有些api被更改了,所以在以下的使用者中我们使用SDL1.3的库,这个库我会传上源码以及编译 ...
- android音视频播放器开发百度云,Android 播放端 SDK
1 概述 PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 Android ...
- 学习笔记(2):基于NDK、C++、FFmpeg的android视频播放器开发实战-音视频基础知识Mpeg4封装格式音视频编码格式讲解...
立即学习:https://edu.csdn.net/course/play/7417/151027?utm_source=blogtoedu 封装:将音视频从文件中读出来 解码:解压出来,转换成显卡支 ...
- Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频
Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频 (本篇博客参考<Android第一行代码(第二版)>中关于RecyclerView的部分) 列表的实 ...
最新文章
- DNS信息探测工具DNSRecon常用命令
- Android 6.0 变更
- SQL Server(第二章) 字符串函数、日期时间函数、转换函数
- python能处理多大的数据-使用Python Pandas处理亿级数据
- VS2012设置断点的方法
- .NET中国峰会议题征集
- 企业实战05:Oracle数据库_操作表中数据
- 用例设计工具PICT — 输入组合覆盖
- ai怎么渐变颜色_AI教程!渐变色噪点质感城堡场景插画绘制过程分享
- Spark SQL运行原理和架构
- jQuery学习(二)—jQuery对象的获取
- 支付签约_已成燎原之势!蜻蜓支付出库、签约、地推火爆!
- 如何查看python的工作目录_Python3基础 os listdir curdir查看当前工作目录的所有文件的名字...
- 十一、K8s 健康性检查
- iOS 开发经验 - 转载
- HTML常用table样式
- 【Pandas】Pandas求某列字符串的长度,总结经验教训
- webscraper改写案例分析
- 数据库连接:Can`t connect to MySQL server on “localhost“(10038)
- 每天吃2根香蕉,30天后你会发现自己有惊人的变化!