android 媒体库扫描,如何扫描出Android系统媒体库中视频文件
Android系統(tǒng)啟動(dòng)時(shí)會(huì)去掃描系統(tǒng)文件,并將系統(tǒng)支持的視頻文件(mp4,3gp,wmv)掃描到媒體庫(MediaStore)中,下面代碼演示如何獲得這些文件的信息:
publicstatic?List?sysVideoList?=?null;//?視頻信息集合
sysVideoList?=?new?ArrayList();
setVideoList();
privatevoid?setVideoList()?{
//?MediaStore.Video.Thumbnails.DATA:視頻縮略圖的文件路徑
String[]?thumbColumns?=?{?MediaStore.Video.Thumbnails.DATA,
MediaStore.Video.Thumbnails.VIDEO_ID?};
//?MediaStore.Video.Media.DATA:視頻文件路徑;
//?MediaStore.Video.Media.DISPLAY_NAME?:?視頻文件名,如?testVideo.mp4
//?MediaStore.Video.Media.TITLE:?視頻標(biāo)題?:?testVideo
String[]?mediaColumns?=?{?MediaStore.Video.Media._ID,
MediaStore.Video.Media.DATA,?MediaStore.Video.Media.TITLE,
MediaStore.Video.Media.MIME_TYPE,
MediaStore.Video.Media.DISPLAY_NAME?};
cursor?=?managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
mediaColumns,?null,?null,?null);
if(cursor==null){
Toast.makeText(SystemVideoChooseActivity.this,?"沒有找到可播放視頻文件",?1).show();
return;
}
if?(cursor.moveToFirst())?{
do?{
VideoInfo?info?=?new?VideoInfo();
int?id?=?cursor.getInt(cursor
.getColumnIndex(MediaStore.Video.Media._ID));
Cursor?thumbCursor?=?managedQuery(
MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
thumbColumns,?MediaStore.Video.Thumbnails.VIDEO_ID
+?"="?+?id,?null,?null);
if?(thumbCursor.moveToFirst())?{
info.setThumbPath(thumbCursor.getString(thumbCursor
.getColumnIndex(MediaStore.Video.Thumbnails.DATA)));
}
info.setPath(cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA)));
info.setTitle(cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE)));
info.setDisplayName(cursor.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)));
LogUtil.log(TAG,?"DisplayName:"+info.getDisplayName());
info.setMimeType(cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE)));
sysVideoList.add(info);
}?while?(cursor.moveToNext());
}
}
有一點(diǎn)需要注意的是:系統(tǒng)的媒體庫并不會(huì)在我們添加視頻文件后自動(dòng)更新,我們?nèi)绾稳ナ謩?dòng)掃描媒體庫,或者重啟系統(tǒng)才能從媒體庫中得到更新的視頻文件:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
原文:http://www.cnblogs.com/wangfeng520/p/5089726.html
總結(jié)
以上是生活随笔為你收集整理的android 媒体库扫描,如何扫描出Android系统媒体库中视频文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滑动登录
- 下一篇: android sina oauth2.