MusicOpenSdk

2023-05-10  本文已影响0人  今天天气很好我心情也很好

1,不能获取在线,这些都是音乐厂家规定,声必可没有版权去通过SDK外放

2,声必可自己的桌面音乐的在线也需要是QQ音乐会员

MusicOpenSdk可以提供本地音乐的播放操作,需要装在中控屏幕上。如果需要远程,可以通过http接口和mqtt通信来实现。

### 歌曲信息

可以获取歌曲名字,歌手名字

```

public class JdSong {

    public String song_name;

    public int source;

    public int islocal;

    public String pic_url;

    public String song_id;

    public String singers;

    public String uri;

    public JdSong() {

    }

```

### 本地音乐列表

```

mJdMusicPresenter = new JdLocalMusicPresenter(context, new ILocalMusicCallBack() {

    @Override

    public void onGetSdSongsSuccess(List<EglSong> list) {

        Logger.d("onGetSdSongsSuccess");

    }

    @Override

    public void onQueryLocalSceneMusic(List<LocalSceneMusic> list) {

    }

});

  new Handler().postDelayed(new Runnable() {

            @Override

            public void run() {

                //获取Sd卡下歌曲

                mJdMusicPresenter.querySdCardSongs();

            }

        }, 1000);

```

### 音乐播放控制

播放上一首

播放暂停切换

播放下一首

切换播放模式

```

@OnClick({R.id.prev, R.id.play_pause, R.id.next, R.id.play_list, R.id.list_mode})

public void onViewClicked(View view) {

    switch (view.getId()) {

        case R.id.prev:

            mJdPlayPresenter.prev();//播放上一首

            break;

        case R.id.play_pause:

            playPause.setImageResource(mMediaState != JdMusicConstant.MEDIA_STATE_PLAYING ? android.R.drawable.ic_media_pause : android.R.drawable.ic_media_play);

            //播放暂停切换

            mJdPlayPresenter.togglePlay();

            break;

        case R.id.next:

            //播放下一首

            mJdPlayPresenter.next();

            break;

        case R.id.play_list:

            showWaitDialog("提示", "正在获取播放列表,请稍后...");

            //查询播放列表 查询成功后会 回调onPlaylist

            mJdPlayPresenter.queryPlayList(new JdCallBack() {

                @Override

                public void onSuccess() {

                    hideWaitDialog();

                    mPlaylistPopupWindow.showAtLocation(mContainView, Gravity.BOTTOM

                            | Gravity.CENTER_HORIZONTAL, 0, 0);

                }

                @Override

                public void onFail(String msg) {

                    hideWaitDialog();

                    showToast(msg);

                }

            });

            break;

        case R.id.list_mode:               

            mJdPlayPresenter.switchListMode();//按顺序依次切换播放模式

            //mJdPlayPresenter.switchListMode(PlayMode.LOOP_LIST.getKey());//切换到指定的播放模式

//mJdPlayPresenter.setAudioEffect(4); //切换到第4个音效, 音效详细顺序见,“桌面-》系统设置-》音效设置”

            break;

    }

}

```

1,播放进度回调  进度变化会主动回调

```

@Override

public void onProgress(final int progress, final int duration) {

    Logger.d( "progress:" + progress + "    duration:" + duration);

}

```

2,歌曲改变回调

```

@Override

            public void onSongChange(EglSong eglSong) {

                Logger.d("播放状态回调");

//                songName.setText(eglSong.getName());

//                ImageLoader.getInstance().displayImage(eglSong.getImgPath(), songImg);

            }

```

3,播放状态回调

```

@Override

            public void onPlayStatus(final int status) {

                Logger.d("播放状态回调"+status);

                mMediaState = status;

//                runOnUiThread(new Runnable() {

//                    @Override

//                    public void run() {

//                        switch (status) {

//                            case JdMusicConstant.MEDIA_STATE_IDLE:

//                                playPause.setImageResource(android.R.drawable.ic_media_play);

//                                break;

//                            case JdMusicConstant.MEDIA_STATE_PREPARED:

//                                playPause.setImageResource(android.R.drawable.ic_media_pause);

//                                break;

//                            case JdMusicConstant.MEDIA_STATE_PLAYING:

//                                playPause.setImageResource(android.R.drawable.ic_media_pause);

//                                break;

//                            case JdMusicConstant.MEDIA_STATE_PAUSE:

//                                playPause.setImageResource(android.R.drawable.ic_media_play);

//                                break;

//                        }

//                    }

//                });

            }

```

4,播放模式改变回调

```

@Override

public void onListModeChange(String listMode) {

    refreshListModeIcon(listMode);

    Logger.d("播放模式改变回调"+listMode);

}

```

5,播放列表发生改变回调

```

@Override

public void onPlaylist(List<JdSong> list) {

    Logger.d("播放列表发生改变回调");

}

```

6,播放列表播放位置发生该变回调,当前在播放第几个

```

@Override

            public void onPlaylistPosition(int position) {

Logger.d("播放列表播放位置发生该变回调,当前在播放第几个"+position);

            }

```

上一篇 下一篇

猜你喜欢

热点阅读