音乐播放器获取音乐列表

清单文件添加权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

public class MusicUtil {
    public static List<MusicBean> getMusics(Context context) {
        List<MusicBean> beans = new ArrayList<>();
        ContentResolver contentResolver = context.getContentResolver();
        Cursor cursor = contentResolver.query
                (MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null, null);
        while (cursor.moveToNext()) {
            MusicBean bean = new MusicBean();
            bean.setTitle(cursor.getString(cursor.getColumnIndex(MediaStore.
                    Audio.Media.TITLE)));
            bean.setArtist(cursor.getString(cursor.getColumnIndex(MediaStore.
                    Audio.Media.ARTIST)));
            bean.setPath(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)));
            beans.add(bean);
        }
        cursor.close();
        return beans;
    }
}
public class MusicBean {
    private String title;
    private String artist;
    private String path;

    public String getTitle() {
        return title;
    }

    public void setTitle(String pTitle) {
        title = pTitle;
    }

    public String getArtist() {
        return artist;
    }

    public void setArtist(String pArtist) {
        artist = pArtist;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String pPath) {
        path = pPath;
    }
}

listview = (ListView) findViewById(R.id.listview);

        MyAdapter adapter = new MyAdapter();
        final List<MusicBean> musics = MusicUtil.getMusics(this);
        adapter.setBeans(musics);
        listview.setAdapter(adapter);
        final MediaPlayer mediaPlayer = new MediaPlayer();

        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> pAdapterView, View pView, int pI, long pL) {
                try {
                    mediaPlayer.reset();
                    mediaPlayer.setDataSource(musics.get(pI).getPath());
                    mediaPlayer.prepare();
                    mediaPlayer.start();
                } catch (IOException pE) {
                    pE.printStackTrace();
                }

            }
        });
public class MyAdapter extends BaseAdapter{


        public List<MusicBean> mBeans = new ArrayList<>();



        public void setBeans(List<MusicBean> pBeans) {
            mBeans = pBeans;
        }

        @Override
        public int getCount() {
            return mBeans.size();
        }

        @Override
        public Object getItem(int pI) {
            return mBeans.get(pI);
        }

        @Override
        public long getItemId(int pI) {
            return pI;
        }

        @SuppressLint("ViewHolder")
        @Override
        public View getView(int pI, View pView, ViewGroup pViewGroup) {
            View inflate = LayoutInflater.from(MainActivity.this).inflate(R.layout.item, pViewGroup, false);
            TextView songsName = inflate.findViewById(R.id.songsName);
            TextView name = inflate.findViewById(R.id.name);
            songsName.setText(mBeans.get(pI).getTitle());
            name.setText(mBeans.get(pI).getArtist());
            return inflate;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值