项目最近又来了添加视频的需求,暂定存储到七牛。具体步骤大致分为三步:
1:获取本地视频缩略图展示,当用户选择某一段视频时,拿到该视频的地址。
2:通过七牛sdk,将该视频地址传入,上传到七牛云存储,然后获取视频videoUrl和videoThumail。
3:通过视频播放器播放视频。
2017-06-21 20_59_30.gif
一:获取视频列表并在手机中展示。
这里大致可以分为一下几步:
1:由于获取视频列表需要查询多媒体数据库,因此我们创建一个线程。
2:当查询完毕,通过获取DATA列的路径,传入Thumbnails中获取视频缩略图
3:通过GridView 展示这些缩略图,当用户点选某个视频的时候,拿到那个视频的本地地址。
(1):创建handler代替线程,用来查询多媒体数据库
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
pictureAdapter.notifyDataSetChanged();
}
};
handler.post(new Runnable() {
@Override
public void run() {
getThumbnail();
}
});
这里的getthumbnail就是我们要查询多媒体数据库,获取缩略图的方法
(2):查询视频列表,获取每个视频缩略图
在这个方法中我们构造了一个构造了一条查询语句,查询的是外部存储卡中的视频,以及按照日期倒序排列。然后通过游标的移动,获取每条视频的MediaStore.Video.Media.DATA代表路径,以及MediaStore.Video.Media._ID代表唯一id。当我们拿到路径和唯一id后,就可以通过系统工具类获取视频的缩略图bitmap,然后将其在一个数组中,用来作为gridview的数据源。下面这个方法获取视频缩略图耗时严重,可以参看博文更新解决办法;
private void getThumbnail() {
Cursor mCursor = mContentResolver.query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
null, null, null,