广播+音乐播放器

创建一个广播接收者

在这里插入图片描述

静态广播接收者

加频道

 <!-- 加频道 -->
            <intent-filter>
                <action android:name="com.zhang" />
                <action android:name="com.zhang1" />
            </intent-filter>

主方法中

 //给广播发送消息
    public void send(View view) {
        Intent intent = new Intent();
        intent.setAction("com.zhang");
        Bundle bundle = new Bundle();
        bundle.putString("name","憨憨赵岩博");
        intent.putExtras(bundle);
        sendBroadcast(intent);
    }

    public void send1(View view) {
        Intent intent = new Intent();
        intent.setAction("com.zhang1");
        Bundle bundle = new Bundle();
        bundle.putString("name1","马保国");
        intent.putExtras(bundle);
        sendBroadcast(intent);
    }

广播接收者

 String action = intent.getAction();
        if (action.equals("com.hehe")){
            Bundle extras = intent.getExtras();
            String name = extras.getString("name");
            Log.i(TAG, "onReceive: "+name);
        }else if (action.equals("com.hehe1")){
            Bundle extras = intent.getExtras();
            String name1 = extras.getString("name1");
            Log.i(TAG, "onReceive: "+name1);
        }

音乐播放器

在网页上下载音乐播放

 public void play(View view) {
        //初始化播放状态
        mediaPlayer.reset();
        //1.本地文件2.网络地址
        try {
            //加载数据源
            mediaPlayer.setDataSource("http://m10.music.126.net/20201124193128/6175f2c178baccf22b0208567d3ccd9e/ymusic/0152/535b/005a/68fda1acb7d170a837d3702701335098.mp3");
            //异步准备
            mediaPlayer.prepareAsync();
            //准备完成监听器
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    //开始播放
                    mediaPlayer.start();
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void zt(View view) {
        mediaPlayer.pause();
    }
    //继续
    public void jx(View view) {
        mediaPlayer.start();
    }
    //暂停
    public void tz(View view) {
        mediaPlayer.stop();
    }
    //下一首
    public void next(View view) {
        playnext();
    }
    //上一首
    public void down(View view) {
        if (--index>=0){
            index=list.size()-1;
        }
        mu(index);
    }

读取本地音乐并播放

读取本地音乐

		public static List<Music> du(Context context){
        List<Music> list=new ArrayList<>();
        ContentResolver contentResolver = context.getContentResolver();
        Cursor query = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
        if (query!=null){
            while (query.moveToNext()){
                String title = query.getString(query.getColumnIndex(MediaStore.Audio.Media.TITLE));
                String name = query.getString(query.getColumnIndex(MediaStore.Audio.Media.ARTIST));
                String duration = query.getString(query.getColumnIndex(MediaStore.Audio.Media.DURATION));
                String data = query.getString(query.getColumnIndex(MediaStore.Audio.Media.DATA));
                String size = query.getString(query.getColumnIndex(MediaStore.Audio.Media.SIZE));
                String id = query.getString(query.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
                if (Integer.parseInt(duration)>=1000*60){
                    Music music = new Music(title, name, duration, data, size, id);
                    list.add(music);
                }
            }
            query.close();
        }
        return list;
    }

音乐类

public class Music {
    private String title;
    private String name;
    private String duration;
    private String data;
    private String size;
    private String id;

    public Music(String title, String name, String duration, String data, String size, String id) {
        this.title = title;
        this.name = name;
        this.duration = duration;
        this.data = data;
        this.size = size;
        this.id = id;
    }

    public Music() {
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDuration() {
        return duration;
    }

    public void setDuration(String duration) {
        this.duration = duration;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getSize() {
        return size;
    }

    public void setSize(String size) {
        this.size = size;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "Music{" +
                "title='" + title + '\'' +
                ", name='" + name + '\'' +
                ", duration='" + duration + '\'' +
                ", data='" + data + '\'' +
                ", size='" + size + '\'' +
                ", id='" + id + '\'' +
                '}';
    }
}

播放

  public void play(int position){
     
        mediaPlayer.reset();
        try {
            index=position;
            mediaPlayer.setDataSource(list.get(position).getData());
            mediaPlayer.prepareAsync();
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mediaPlayer.start();
                }
            });
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    switch (aaa){
                        case Musicutil.ORANGE:
                            next();
                            break;
                        case Musicutil.SINGLE:
                            play(index);
                            break;
                        case Musicutil.RANDOW:
                            int i = new Random().nextInt(list.size());
                            play(i);
                            break;
                    }
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值