
mData = new ArrayList<ChoseMusicBean>();
File f = new File(DEFAULT_SOUND_PATH);
File[] files = flistFiles();
if (files != null) {
int count = fileslength;
for (int i = 0; i < count; i++) {
File file = files[i];
ChoseMusicBean bean = new ChoseMusicBean(filegetName());
mDataadd(bean);
}
}
Adapter adapter=new adapter(context,mData);
listviewsetAdapter(adapter);
DEFAULT_SOUND_PATH是音乐文件路径
ContentResolver mResolver = getContentResolver();
Cursor cursor = mResolverquery(MediaStoreAudioMediaEXTERNAL_CONTENT_URI, null, null, null, MediaStoreAudioMediaDEFAULT_SORT_ORDER);
int i = 0;
int cursorCount = cursorgetCount();
if (cursorCount >0 )
{
cursormoveToFirst();
while (i < cursorCount)
{
//歌曲文件的路径 :MediaStoreAudioMediaDATA
url = cursorgetString(cursorgetColumnIndexOrThrow(MediaStoreAudioMediaDATA));
if(urltoLowerCase()indexOf("指定的歌曲路径") > 0)
{
}
i++;
cursormoveToNext();
}
cursorclose();
}
安卓系统在开机的时候就会自动检测SD卡的文件,并将音乐文件搜集生成一个数据库文件。我们只需访问数据库表中的信息就能得到所需的文件
代码如下:
<span style="font-size:14px; white-space: pre;"> </span><span style="font-size:14px;">// 获取所有歌曲
Cursor cursor = crquery(
MediaStoreAudioMediaEXTERNAL_CONTENT_URI, null, null,
null, MediaStoreAudioMediaDEFAULT_SORT_ORDER);</span>
得到cursor对象就能访问cursor里的媒体资源
Intent intent=new Intent(IntentACTION_PICK,androidproviderMediaStoreAudioMediaEXTERNAL_CONTENT_URI); //打开音乐库
startActivityForResult(intent, reqCode);
这是抽取专辑的方法,扫描歌曲的时候自己把歌曲的id和专辑的id传进去就能获取
private static final Uri sArtworkUri = Uri
parse("content://media/external/audio/albumart");
/
将MP3里读取出来
@param context
@param songid
@param albumid
@return
/
public static Bitmap getMusicBitemp(Context context, long songid,
long albumid) {
Bitmap bm = null;
// 专辑id和歌曲id小于0说明没有专辑、歌曲,并抛出异常
if (albumid < 0 && songid < 0) {
throw new IllegalArgumentException(
"Must specify an album or a song id");
}
try {
if (albumid < 0) {
Uri uri = Uriparse("content://media/external/audio/media/"
+ songid + "/albumart");
ParcelFileDescriptor pfd = contextgetContentResolver()
openFileDescriptor(uri, "r");
if (pfd != null) {
FileDescriptor fd = pfdgetFileDescriptor();
bm = BitmapFactorydecodeFileDescriptor(fd);
}
} else {
Uri uri = ContentUriswithAppendedId(sArtworkUri, albumid);
ParcelFileDescriptor pfd = contextgetContentResolver()
openFileDescriptor(uri, "r");
if (pfd != null) {
FileDescriptor fd = pfdgetFileDescriptor();
bm = BitmapFactorydecodeFileDescriptor(fd);
} else {
return null;
}
}
} catch (FileNotFoundException ex) {
}
return bm;
}
另一种:
// 查找sdcard卡上的所有歌曲信息
public List> getMultiData() {
ArrayList> musicList = new ArrayList>();
// 加入封装音乐信息的代码
// 查询所有歌曲
ContentResolver musicResolver = thisgetContentResolver();
Cursor musicCursor = musicResolverquery(
MediaStoreAudioMediaEXTERNAL_CONTENT_URI, null, null, null,
null);
int musicColumnIndex;
if (null != musicCursor && musicCursorgetCount() > 0) {
for (musicCursormoveToFirst(); !musicCursorisAfterLast(); musicCursor
moveToNext()) {
Map musicDataMap = new HashMap();
Random random = new Random();
int musicRating = Mathabs(randomnextInt()) % 10;
musicDataMapput("musicRating", musicRating);
// 取得音乐播放路径
musicColumnIndex = musicCursor
getColumnIndex(MediaStoreAudioAudioColumnsDATA);
musicPath = musicCursorgetString(musicColumnIndex);
musicDataMapput("musicPath", musicPath);
// 取得音乐的名字
musicColumnIndex = musicCursor
getColumnIndex(MediaStoreAudioAudioColumnsTITLE);
musicName = musicCursorgetString(musicColumnIndex);
musicDataMapput("musicName", musicName);
// 取得音乐的专辑名称
musicColumnIndex = musicCursor
getColumnIndex(MediaStoreAudioAudioColumnsALBUM);
musicAlbum = musicCursorgetString(musicColumnIndex);
musicDataMapput("musicAlbum", musicAlbum);
// 取得音乐的演唱者
musicColumnIndex = musicCursor
getColumnIndex(MediaStoreAudioAudioColumnsARTIST);
musicArtist = musicCursorgetString(musicColumnIndex);
musicDataMapput("musicArtist", musicArtist);
// 取得歌曲对应的专辑对应的Key
musicColumnIndex = musicCursor
getColumnIndex(MediaStoreAudioAudioColumnsALBUM_KEY);
musicAlbumKey = musicCursorgetString(musicColumnIndex);
String[] argArr = { musicAlbumKey };
ContentResolver albumResolver = thisgetContentResolver();
Cursor albumCursor = albumResolverquery(
MediaStoreAudioAlbumsEXTERNAL_CONTENT_URI, null,
MediaStoreAudioAudioColumnsALBUM_KEY + " = ",
argArr, null);
if (null != albumCursor && albumCursorgetCount() > 0) {
albumCursormoveToFirst();
int albumArtIndex = albumCursor
getColumnIndex(MediaStoreAudioAlbumColumnsALBUM_ART);
musicAlbumArtPath = albumCursorgetString(albumArtIndex);
if (null != musicAlbumArtPath
&& !""equals(musicAlbumArtPath)) {
musicDataMapput("musicAlbumImage", musicAlbumArtPath);
} else {
musicDataMapput("musicAlbumImage",
"file:///mnt/sdcard/albjpg");
}
} else {
// 没有专辑定义,给默认
musicDataMapput("musicAlbumImage",
"file:///mnt/sdcard/albjpg");
}
musicListadd(musicDataMap);
}
}
return musicList;
}
以上就是关于android读取指定目录下音乐文件并显示在xml中全部的内容,包括:android读取指定目录下音乐文件并显示在xml中、Android 怎么读取指定目录下的音乐文件、android音乐播放器怎么搜索SD卡上的音乐文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)