我在做一个安卓的音乐播放器,但是要求要遍历系统所有的MP3文件,以前只做过遍历sdcard中的,要用什么方法获取系统中的啊?还有就是要求要在音乐列表中显示文件的时长,以前只会用getduration();方法,现在在播放之前就要获取时长,怎么才能得到?求大神解答,急,,,,,,,,,,,音乐遍历Androidmp3
解决方案 »
- 请教:覆盖安装换掉启动图片的程序,还是现实老的启动图片
- Android 网络监控问题
- 求救!!!
- 新人报道 送上wave地址 大家来讨论把
- 微信开放平台,一点都不开放,有同感的进。有木有
- 请教setContentView(int layoutResId)(android4.1.2)是怎么被调用的
- android怎么得到输入对话框的内容
- eclipse中百度地图jar包 和 第三方library出现冲突 求解决方案
- 手机软件开发运行在Android系统上,用什么开发工具好
- Xamarin开发安卓 如何设置主屏幕应用
- 通过wifi无线网络,用adb connect命令无法连接android手机
- 数据库操作问题
MediaStore.Audio.Media.TITLE 字段是曲名
MediaStore.Audio.Media.ARTIST 字段是歌手
MediaStore.Audio.Media.ARTIST 字段是专辑
MediaStore.Audio.Media.DURATION 字段是时间 单位是毫秒
MediaStore.Audio.Media.DATA 字段是文件位置
MediaStore.Audio.Media.DISPLAY_NAME 字段是显示名称
我想问下,query方法的第二个参数说是用string[]数组代替,这是在哪获取的?
例如常量MediaStore.Audio.Media.TITLE
其值是一个String 就是曲名的字段名
用contentResolver.query()方法访问数据库直接得到的是满足selection的所有曲目
返回的结果是一个cursor
你需要自己遍历这个cursor来获得这些曲目每一条的所有信息
例如这个方法可以获取手机上包括SD卡中所有长度大于10秒且是音乐的音频文件
private ArrayList<Music> queryMusics() {
ArrayList<Music> musiclistResult = new ArrayList<Music>();
ContentResolver cr = this.getContentResolver();
Cursor musics = cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[] {
MediaStore.Audio.Media._ID, // int
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DATA, // String
MediaStore.Audio.Media.DISPLAY_NAME, // String
MediaStore.Audio.Media.MIME_TYPE // String
},
MediaStore.Audio.Media.IS_MUSIC + " = 1 AND "
+ MediaStore.Audio.Media.DURATION + " > 10000",
null,
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
Log.d("", "musics : " + musics.getCount()); musics.moveToFirst();
while (!musics.isAfterLast()) {
Music temp = new Music();
temp._ID = musics.getInt(musics.getColumnIndex(MediaStore.Audio.Media._ID));
temp.ALBUM = musics.getString(musics.getColumnIndex(MediaStore.Audio.Media.ALBUM));
temp.ARTIST = musics.getString(musics.getColumnIndex(MediaStore.Audio.Media.ARTIST));
temp.DATA = musics.getString(musics.getColumnIndex(MediaStore.Audio.Media.DATA));
temp.DURATION = musics.getLong(musics.getColumnIndex(MediaStore.Audio.Media.DURATION));
temp.TITLE = musics.getString(musics.getColumnIndex(MediaStore.Audio.Media.TITLE));
temp.isExist = true; musiclistResult.add(temp);
musics.moveToNext();
}
musics.close();
return musiclistResult;
}
/**
* 音乐的信息
*
* @author BabyBeaR
*/
@SuppressWarnings("unused")
private class Music {
int _ID;
long DURATION;
boolean isExist;
String TITLE, ARTIST, ALBUM, DATA;
}
还有一个问题想请教您一下,怎样用service实现歌词同步?昨天在下载专区下了一个例子,但是实现不了,狠郁闷,能发个例子到我邮箱吗?谢谢了! 邮箱:[email protected]