查询音乐播放器数据库

本文介绍了一个Android应用中从外部内容URI查询音乐信息并显示在列表视图的过程。通过ContentResolver查询MediaStore的Audio.Media.EXTERNAL_CONTENT_URI来获取设备上的音乐文件信息,并将这些信息展示在一个ListView中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class ListSqliteActivity extends Activity {
	private ListView mListView;
	private List<Mp3Info> mMusicAllMessage;

	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.listsqlite_layout);

		mListView = (ListView) findViewById(R.id.lsit_sqlite_main);

		ListSqliteAdapter adapter = new ListSqliteAdapter(this);
		mListView.setAdapter(adapter);
		mMusicAllMessage = getMp3Infos(this);
		
		adapter.setData(mMusicAllMessage);
	}

	public List<Mp3Info> getMp3Infos(Context context) {
		List<Mp3Info> mp3InfosList = new ArrayList<Mp3Info>();
		// Cursor cursor =
		// context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
		// null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

		Cursor cursor = context.getContentResolver().query(
				MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
				MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

		Log.i("11", "Cursor>>" + cursor);
		Log.i("11", "" + cursor.getCount());

		
		while (cursor.moveToNext()) {
			// int id = cursor.getInt(cursor
			// .getColumnIndex(MediaStore.Audio.Media._ID)); // 音乐id
			String displayName = cursor.getString(cursor
					.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));// 艺术家
			String title = cursor.getString((cursor
					.getColumnIndex(MediaStore.Audio.Media.TITLE)));// 音乐标题
			String artist = cursor.getString(cursor
					.getColumnIndex(MediaStore.Audio.Media.ARTIST));// 艺术家

			long duration = cursor.getLong(cursor
					.getColumnIndex(MediaStore.Audio.Media.DURATION));// 时长
			long size = cursor.getLong(cursor
					.getColumnIndex(MediaStore.Audio.Media.SIZE)); // 文件大小
			String url = cursor.getString(cursor
					.getColumnIndex(MediaStore.Audio.Media.DATA)); // 文件路径
			int isMusic = cursor.getInt(cursor
					.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC));// 是否为音乐
			
			Mp3Info mp3Info = new Mp3Info();
//			if (isMusic != 0) { // 只把音乐添加到集合当中
//				mp3Info.setId(id); // 音乐id
			
				mp3Info.setDisplayName(displayName);// 时长
				mp3Info.setTitle(title);// 音乐标题,歌曲名
				mp3Info.setArtist(artist);// 艺术家、歌手名
				mp3Info.setDuration(duration);// 时长
				mp3Info.setSize(size);// 文件大小
				// mp3Info.setUrl(url);// 文件路径
				mp3InfosList.add(mp3Info);
//			}
		}
		return mp3InfosList;
	}
}

 

查询数据库的Bean类:

public class Mp3Info {
	private int id;// 音乐id
	private String title; // 音乐标题,歌曲名
	private String artist;// 艺术家、歌手名
	private String displayName;// 艺术家、歌手名

	private long duration;// 时长
	private long size; // 文件大小
	private String url; // 文件路径

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	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 long getDuration() {
		return duration;
	}

	public void setDuration(long duration) {
		this.duration = duration;
	}

	public long getSize() {
		return size;
	}

	public void setSize(long size) {
		this.size = size;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getDisplayName() {
		return displayName;
	}

	public void setDisplayName(String displayName) {
		this.displayName = displayName;
	}

}

结果图:



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值