您好,登錄后才能下訂單哦!
這篇文章主要介紹了Android怎么實現(xiàn)讀取手機內(nèi)存中的所有音樂,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
讀取手機內(nèi)存中的音樂信息需要做如下幾步:
1)創(chuàng)建一個XML文件,存放獲取到的信息,使用ListView控件
2)創(chuàng)建一個新的XML文件,對LIstView中的item對象進行布局
3)需要創(chuàng)建一個Music類用于存放需要獲取的Music的主要信息
4)需要創(chuàng)建一個幫助類,用于獲取手機中的音樂信息,并通過一個集合類傳遞獲取到的信息
5)創(chuàng)建一個自定義適配器,用于加載ListView的每個子Item
6)實現(xiàn)對數(shù)據(jù)的加載,并返回到用戶界面
主要的代碼實現(xiàn)如下:
一、幫助類模塊
public ArrayList<Object> getMusic(Context context) { arrayList = new ArrayList<Object>(); resolver = context.getContentResolver(); cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); if (cursor != null) { while (cursor.moveToNext()) { musicInfo = new MusicInfo(); musicInfo.setSinger_Name(cursor.getString(cursor .getColumnIndex(MediaStore.Audio.Media.ARTIST)));// 歌手名 musicInfo.setSong_Name(cursor.getString(cursor .getColumnIndex(MediaStore.Audio.Media.TITLE)));// 歌曲名 musicInfo.setSong_size(FormatChange.formatSize(cursor .getInt(cursor .getColumnIndex(MediaStore.Audio.Media.SIZE))));// 歌曲的大小 musicInfo .setSong_time(FormatChange.toTime(cursor.getInt(cursor .getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION))));// 歌曲時間 musicInfo.setUrl(cursor.getString(cursor .getColumnIndex(MediaStore.Audio.Media.DATA))); arrayList.add(musicInfo); } } cursor.close(); return arrayList; }
我是用普通方法做的,也可以使用靜態(tài)實現(xiàn)。
二、適配器模塊
private ArrayList<Object> arrayList; private Context context; private TextView music_singer,music_name,music_size; private MusicInfo musicInfo; public Music_adapter(Context context,ArrayList<Object> arrayList){ this.context=context; this.arrayList=arrayList; } @Override public int getCount() { return arrayList.size(); } @Override public Object getItem(int position) { return arrayList.get(position); } @Override public long getItemId(int id) { return id; } @Override public View getView(int position, View view, ViewGroup arg2) { if (view==null) { view=LayoutInflater.from(context).inflate(R.layout.music_format,null); } music_name=(TextView) view.findViewById(R.id.music_name); music_singer=(TextView) view.findViewById(R.id.music_singer); music_size=(TextView) view.findViewById(R.id.music_size); musicInfo=(MusicInfo) arrayList.get(position); music_name.setText(musicInfo.getSong_Name()); music_singer.setText(musicInfo.getSinger_Name()+"|"+musicInfo.getSong_time()); music_size.setText(musicInfo.getSong_size()); //這里一定需要轉(zhuǎn)換成字符串類型的 return view; }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Android怎么實現(xiàn)讀取手機內(nèi)存中的所有音樂”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。