03.Android之多媒体——使用ContentResolver获取音频文件

通过ContentResolver类成员方法

query( Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder); 

查询Android系统已经存在的 媒体数据库 来获取的;
//方法一:
	public void getMusic(){
		Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                new String[]{MediaStore.Audio.Media.TITLE,
                MediaStore.Audio.Media.DURATION, 	//音频文件播放时长
                MediaStore.Audio.Media.ARTIST,
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DATA}, 		//音频文件路径
                null, null, null);

		if(cur == null){

			System.out.println("————查询失败!————");

		}else if(!cursor.moveToFirst()){

			System.out.println("————音频不存在!————");

		}do{

				Music m = new Music();
				m.setTitle(cur.getString(0));         //0,1,2,3,4 和上面query(Uri uri, String[] projection, String selection, 
				m.setDuration(cur.getString(1));      // String[] selectionArgs,String sortOrder);第二个参数的顺序是对应的	
				m.setArtist(cur.getString(2));
				m.setId(cur.getString(3));
				m.setPath(cur.getString(4));			

		}while(cur.moveToNext());
	}
_____________________________________________________________________________________________________________

public class Music {
	
	private String title;
	private String artist;
	private String id;
	private String path;
	private String duration;
	
	public String getDuration() {
		return duration;
	}
	public void setDuration(String duration) {
		this.duration = duration;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getArtist() {
		return artist;
	}
	public void setArtist(String artist) {
		this.artist = artist;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}

//方法二:

	public void getMusic(){
		ContentResolver contentResolver = getContentResolver();
		Uri uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
		Cursor cursor = contentResolver.query(uri, null, null, null, null);
		
		if(cursor == null){

			System.out.println("————查询失败!————");

		}else if(!cursor.moveToFirst()){

			System.out.println("————音频不存在!————");

		}else{
			int data = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DATA);			//对应数据库的列号
			int display_name = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DISPLAY_NAME); //对应数据库的列号
			
			do{

				String music_name = cursor.getString(display_name);	//音频文件名
				String path = cursor.getString(data);			//音频文件路径
				
			}while(cursor.moveToNext());
			
		}
	}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值