java音乐播放器文库_android音乐播放器开发教程
關于音樂列表的讀取,不同的音樂播放器都會有不同的方案,有的是有多重方案并用。例如說,全盤掃描音樂格式文件等。
首先我封裝了一個Audio類來存儲讀取的音頻信息:
public?class?MediaUtils?{
public?static?final?String[]?AUDIO_KEYS?=?new?String[]{
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.TITLE_KEY,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ARTIST_ID,
MediaStore.Audio.Media.ARTIST_KEY,
MediaStore.Audio.Media.COMPOSER,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.ALBUM_ID,
MediaStore.Audio.Media.ALBUM_KEY,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.SIZE,
MediaStore.Audio.Media.YEAR,
MediaStore.Audio.Media.TRACK,
MediaStore.Audio.Media.IS_RINGTONE,
MediaStore.Audio.Media.IS_PODCAST,
MediaStore.Audio.Media.IS_ALARM,
MediaStore.Audio.Media.IS_MUSIC,
MediaStore.Audio.Media.IS_NOTIFICATION,
MediaStore.Audio.Media.MIME_TYPE,
MediaStore.Audio.Media.DATA
};
public?static?List?getAudioList(Context?context)?{
List?audioList?=?new?ArrayList();
ContentResolver?resolver?=?context.getContentResolver();
Cursor?cursor?=?resolver.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
AUDIO_KEYS,
null,
null,
null);
for?(cursor.moveToFirst();?!cursor.isAfterLast();?cursor.moveToNext())?{
Bundle?bundle?=?new?Bundle?();
for?(int?i?=?0;?i?
final?String?key?=?AUDIO_KEYS[i];
final?int?columnIndex?=?cursor.getColumnIndex(key);
final?int?type?=?cursor.getType(columnIndex);
switch?(type)?{
case?Cursor.FIELD_TYPE_BLOB:
break;
case?Cursor.FIELD_TYPE_FLOAT:
float?floatValue?=?cursor.getFloat(columnIndex);
bundle.putFloat(key,?floatValue);
break;
case?Cursor.FIELD_TYPE_INTEGER:
int?intValue?=?cursor.getInt(columnIndex);
bundle.putInt(key,?intValue);
break;
case?Cursor.FIELD_TYPE_NULL:
break;
case?Cursor.FIELD_TYPE_STRING:
String?strValue?=?cursor.getString(columnIndex);
bundle.putString(key,?strValue);
break;
總結
以上是生活随笔為你收集整理的java音乐播放器文库_android音乐播放器开发教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脚手架 插件
- 下一篇: java file pathname_i