Android开发——SD卡_扫描SD卡中视频、音频文件

来源:互联网 发布:网络直播的定义 编辑:程序博客网 时间:2024/04/28 22:11

如果想要自己实现的视频播放器读取本地视频并播放,该如何做呢?有两种方法可以实现:
方法一:遍历所有文件夹,通过判断文件的扩展名来确定是否为要找的文件

方法二:Android在开机时对所有的视频、音频文件进行扫描,并将其存在本地媒体库MediaStore中,所以我们可以通过访问MediaStore来获得本地视频文件。

Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;Cursor c = MainActivity.this.getContentResolver().query(uri, null, null, null, MediaStore.Video.Media.DEFAULT_SORT_ORDER);//内容提供器
   // 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: 视频标题 : 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 = getContentResolver().query(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 = getContentResolver().query(                   MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,                   thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID                           + "=" + id, null, null);           if (thumbCursor.moveToFirst()) {               thumbPath = (thumbCursor.getString(thumbCursor                       .getColumnIndex(MediaStore.Video.Thumbnails.DATA));           }       } while (cursor.moveToNext());   }
0 0
原创粉丝点击