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());
			
		}
	}


發佈了11 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章