美文网首页
MusicOpenSdk

MusicOpenSdk

作者: 今天天气很好我心情也很好 | 来源:发表于2023-05-10 16:20 被阅读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);

                }

    ```

    相关文章

      网友评论

          本文标题:MusicOpenSdk

          本文链接:https://www.haomeiwen.com/subject/muljsdtx.html