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的部分) 列表的实 ...
最新文章
- IE7的web标准之道——7:(修正)float双倍margin bug
- “斐波那契数列”的两种算法
- eclipse/MyEclipse 日期格式、注释日期格式、时区问题
- 一.Spring框架基础
- 面向切面编程AspectJ在Android埋点的实践
- android开不了机怎么办手机号码,手机开不了机怎么办 原因分析及其解决方法
- 笔记五:python字符串
- 趣图:程序猿和运维狗的工作日常……
- python xml解析库_Python xml解析库xml_models2
- gx works2 版本号_GX Works2下载 GX Works2(PLC编程软件) v1.89C 中文安装版(附序列号+安装教程) 下载-脚本之家...
- aix服务器端口配置文件,aix系统查看端口号
- 关于word使用之三线表制作
- 勒让德多项式(Legendre Polynomials)推导
- 安卓图片分类浏览器php,Android快速实现图片浏览
- win10计算机桌面快捷方式,Win10程序快捷方式添加到桌面上的两种方法
- 7-5 判断输入的字符是哪种类型
- 如何区分客户端是手机端还是PC端
- 胜为蓝牙适配器驱动_胜为UCD-324蓝牙适配器驱动
- js倒计时代码(从现在距离明年元旦还剩多少时间)?
- 像素、分辨率、dpi的通俗理解