这一章的主要内容是搜索手机本地视频,添加到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)相关推荐

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

    这一章的主要内容是搜索手机本地视频,添加到ListView列表里,每一个表项含有这个视频的缩略图,视频的播放时间,视频的标题,在搜索本地视频(1)中我们先制作搜索功能.   Video.java--视 ...

  2. android 编译 sdl,SDL编译 - Android本地视频播放器开发_Linux编程_Linux公社-Linux系统门户网站...

    在上一章  Android本地视频播放器开发--ffmpeg解码视频文件中的音频(2)[http://www.linuxidc.com/Linux/2013-06/85955p5.htm]中使用Ope ...

  3. Android本地视频播放器开发--SDL编译

    在上一章 Android本地视频播放器开发--ffmpeg解码视频文件中的音频(2)中使用OpenSL ES来播放视频的声音,遗留的问题是声音的不同步,由于视频实现部分也要同步,而且音视频也要同步,所 ...

  4. 实现在Android本地视频播放器开发

    在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片.标题.时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获 ...

  5. Android本地视频播放器开发--NDK编译FFmpeg

    在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片.标题.时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获 ...

  6. Android本地视频播放器开发--视频解码

    在上一章Android本地视频播放器开发--SDL编译编译中编译出sdl的支持库,当时我们使用的2.0,但是有些api被更改了,所以在以下的使用者中我们使用SDL1.3的库,这个库我会传上源码以及编译 ...

  7. android音视频播放器开发百度云,Android 播放端 SDK

    1 概述 PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 Android ...

  8. 学习笔记(2):基于NDK、C++、FFmpeg的android视频播放器开发实战-音视频基础知识Mpeg4封装格式音视频编码格式讲解...

    立即学习:https://edu.csdn.net/course/play/7417/151027?utm_source=blogtoedu 封装:将音视频从文件中读出来 解码:解压出来,转换成显卡支 ...

  9. Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频

    Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频 (本篇博客参考<Android第一行代码(第二版)>中关于RecyclerView的部分) 列表的实 ...

最新文章

  1. DNS信息探测工具DNSRecon常用命令
  2. Android 6.0 变更
  3. SQL Server(第二章) 字符串函数、日期时间函数、转换函数
  4. python能处理多大的数据-使用Python Pandas处理亿级数据
  5. VS2012设置断点的方法
  6. .NET中国峰会议题征集
  7. 企业实战05:Oracle数据库_操作表中数据
  8. 用例设计工具PICT — 输入组合覆盖
  9. ai怎么渐变颜色_AI教程!渐变色噪点质感城堡场景插画绘制过程分享
  10. Spark SQL运行原理和架构
  11. jQuery学习(二)—jQuery对象的获取
  12. 支付签约_已成燎原之势!蜻蜓支付出库、签约、地推火爆!
  13. 如何查看python的工作目录_Python3基础 os listdir curdir查看当前工作目录的所有文件的名字...
  14. 十一、K8s 健康性检查
  15. iOS 开发经验 - 转载
  16. HTML常用table样式
  17. 【Pandas】Pandas求某列字符串的长度,总结经验教训
  18. webscraper改写案例分析
  19. 数据库连接:Can`t connect to MySQL server on “localhost“(10038)
  20. 每天吃2根香蕉,30天后你会发现自己有惊人的变化!

热门文章

  1. 关于图片存储格式的整理(BMP)
  2. UEFI——UEFI Package Module
  3. 一个简单的Spark ML的例子
  4. 开启mongodb数据库命令行_MongoDB服务启动命令及DB创建
  5. 安卓10侧边返回_安卓10.0内测版现新操作手势:取消返回键、全靠Home胶囊完成...
  6. JDK JRE JVM的区别
  7. UnityShader案例篇—旋转、平移和缩放
  8. testbench——文件读入输出
  9. java版汉字转换拼音(大小写)
  10. 三方接口签名验签简易设计与实现