Android-获取手机上的图片、视频、音频
2017-05-05 17:39
711 查看
ContentResolver query 的参数:
Uri :
projection :查询的哪些列的信息
只查询jpeg和png的图片,以修改日期的升序(默认)排列。
查询大于30秒的所有音乐:
布局:
public final Cursor query (Uri uri, String[] projection,String selection,String[] selectionArgs, String sortOrder)
Uri :
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;//音频 Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;//视频 Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;//图片
projection :查询的哪些列的信息
String[] projection = {MediaStore.Video.Media._ID, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATA};
只查询jpeg和png的图片,以修改日期的升序(默认)排列。
// 只查询jpeg和png的图片,以修改日期的升序(默认)排列。 Cursor mCursor = mContentResolver.query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=?", new String[]{"image/jpeg", "image/png"}, MediaStore.Images.Media.DATE_MODIFIED);
查询大于30秒的所有音乐:
ContentResolver contentResolver = context.getContentResolver(); Cursor cursor = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Audio.Media.DURATION + ">? and " + MediaStore.Audio.Media.DISPLAY_NAME + " like ?", MediaStore.Audio.Media.DEFAULT_SORT_ORDER); while (cursor.moveToNext()) { // 歌曲名 String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); // 歌手 String singer = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)); // 专辑 String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)); // 长度 long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE)); // 时长 int duration = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)); // 路径 String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); // 显示的文件名 String _display_name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)); // 类型 String mime_type = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.MIME_TYPE)); music = new Music(); music.setAlbum(album); music.setDuration(duration); music.setSinger(singer); music.setSize(size); music.setTitle(title); music.setUrl(url); music.set_display_name(_display_name); music.setMime_type(mime_type); list.add(music);
demo如下:
java代码:package com.example.administrator.downloadimgdemo; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; public class GetAllMsg extends AppCompatActivity { Button getImage; Button getVideo; Button getAudio; Button getFiles; TextView myTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_get_all); myTextView = (TextView) this.findViewById(R.id.myTextView); getAudio = ((Button) this.findViewById(R.id.getAudio)); getAudio.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] projection = {MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.SIZE}; String orderBy = MediaStore.Audio.Media.DISPLAY_NAME; Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; getContentProvider(uri, projection, orderBy); } }); getVideo = ((Button) this.findViewById(R.id.getVideo)); getVideo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] projection = {MediaStore.Video.Media._ID, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATA}; String orderBy = MediaStore.Video.Media.DISPLAY_NAME; Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; getContentProvider(uri, projection, orderBy); } }); getImage = ((Button) this.findViewById(R.id.getImage)); getImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.DATA}; String orderBy = MediaStore.Images.Media.DISPLAY_NAME; Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; getContentProvider(uri, projection, orderBy); } }); getFiles = ((Button) this.findViewById(R.id.getFiles)); getFiles.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); } /** * 获取ContentProvider * * @param projection * @param orderBy */ public void getContentProvider(Uri uri, String[] projection, String orderBy) { List<HashMap<String, String>> listImage = new ArrayList<HashMap<String, String>>(); Cursor cursor = getContentResolver().query(uri, projection, null, null, orderBy); if (null == cursor) { return; } while (cursor.moveToNext()) { HashMap<String, String> map = new HashMap<String, String>(); for (int i = 0; i < projection.length; i++) { map.put(projection[i], cursor.getString(i)); System.out.println(projection[i] + ":::::::" + cursor.getString(i) + "\n"); } listImage.add(map); } myTextView.setText(listImage.toString()); } }
布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <Button android:id="@+id/getImage" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Get Image" /> <Button android:id="@+id/getVideo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Get Video" /> <Button android:id="@+id/getAudio" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Get Audio" /> <Button android:id="@+id/getFiles" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Get Files" /> <TextView android:id="@+id/myTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
参考:
ContentProvider之通过ContentResolver获取图像、视频、音频举例相关文章推荐
- Android开发之多媒体文件获取工具类实例【音频,视频,图片等】
- 获取Android手机上的图片和视频缩略图
- android 扫描手机内存和SD卡,获取手机的视频、音频文件。把获取不到的文件扫描出来
- android 如何获取手机的图片、视频、音乐
- android获取音频、视频、图片信息
- android通过Intent调用手机图片,音频,视频录音拍照等代码
- Android之获取手机上的图片和视频缩略图thumbnails
- 获取Android手机上的图片和视频缩略图
- android获取手机上的图片和视频缩略图thumbnails(转)
- 获取Android手机的图片和视频的缩略图[转]
- android获取音频、视频、图片信息
- 获取Android手机上的图片和视频缩略图
- android获取手机上的图片和视频缩略图thumbnails
- Android:获取系统视频、音频、图片字段
- android获取音频、视频、图片信息
- android获取音频、视频、图片信息
- 获取Android手机上的图片和视频缩略图及抓图!!!
- Android获取手机内的所有图片和视频
- android获取多媒体库的视频、音频、图片
- Android:获取系统视频、音频、图片