android 里面如何实现播放ListView当前所点击的歌曲?
展开全部
1先获取sd卡中音乐文件:
Cursor cursor = resolver.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
2通过cursor获得音乐的名字和uri。
String titleString = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.TITLE));
String uriString = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DATA));
名字显示在listview中,uri用来播放音乐。
Uri musicUri = Uri.parse(uriString);
mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(getApplicationContext(), musicUri);
这样就可以实现你上面所需功能了!
Cursor cursor = resolver.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
2通过cursor获得音乐的名字和uri。
String titleString = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.TITLE));
String uriString = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DATA));
名字显示在listview中,uri用来播放音乐。
Uri musicUri = Uri.parse(uriString);
mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(getApplicationContext(), musicUri);
这样就可以实现你上面所需功能了!
展开全部
在listview点击子项的时候,将其名称或者绝对路径传过去。如果MediePlayer与其再同一个文件中,直接播放即可。
追问
我是将它的名称传过去了 ,但是老是播放第一首歌曲,我切换的时候还是第一首,但是我点最后一首的时候可以播放最后一首,这是什么问题? 请不吝赐教,谢谢!
追答
给几个建议 : 1、仔细检查下名称是否与资源完全匹配; 2、所有音乐格式是否统一; 3、MediaPlayer当接收到的名称的时候需要监听其发生改变,先stop,再重置歌曲链接地址,然后prepare() ,再start() ; 4、其他。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询