() {
+ @Override
+ public void onError(int i) {
+
+ }
+
+ @Override
+ public void onSuccess(MediaInfo mediaInfo) {
+ currentMedia.setMediaName(mediaInfo.getMediaName());
+ currentMedia.setMediaImg(mediaInfo.getMediaImage());
+ if (mView != null) {
+ mView.onMediaInfoChanged(currentMedia);
+ }
+ }
+ };
+
+ @Override
+ public void init(Context context) {
+ this.context = context;
+ currentMedia = new MediaInfoData();
+
+ serviceApis =
+ (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context);
+
+ serviceApis.getStatusManagerApi().registerStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.MAIN_PAGE_RESUME, new IMogoStatusChangedListener() {
+ @Override
+ public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
+ if (isTrue) {
+ Logger.d(TAG, "onResume, isBind: " + isBind);
+ // 需要在resume时候判断绑定关系是否正常
+ if (!isBind) {
+ // 未绑定,需要重新绑定,同时第一次绑定初始化也是在此处
+ FlowPlayControl.getInstance().bindPlayService(context);
+ }
+ }
+ }
+ });
+
+ FlowPlayControl.getInstance().addBindListener(new BindListener() {
+ @Override
+ public void onServiceConnected() {
+ Logger.d(TAG, "onServiceConnected===");
+ isBind = true;
+ FlowPlayControl.getInstance().queryPlaying(isPlayingCallback);
+ FlowPlayControl.getInstance().queryCurrent(currentCallback);
+ }
+
+ @Override
+ public void onServiceDisconnected() {
+ Logger.e(TAG, "onServiceDisconnected===");
+ isBind = false;
+ }
+
+ @Override
+ public void onBindDied() {
+ Logger.e(TAG, "onBindDied===");
+ isBind = false;
+ }
+ });
+
+ FlowPlayControl.getInstance().addMediaChangeListener(new MediaChangeListener() {
+ @Override
+ public void onMediaChange(MediaInfo mediaInfo) {
+ Logger.d(TAG, "onMediaChange: " + mediaInfo);
+ Logger.d(TAG, "onMediaChange, img: " + mediaInfo.getMediaImage());
+ currentMedia.setMediaName(mediaInfo.getMediaName());
+ currentMedia.setMediaImg(mediaInfo.getMediaImage());
+ mView.onMediaInfoChanged(currentMedia);
+ }
+
+ @Override
+ public void onFavorChange(boolean b) {
+
+ }
+ });
+
+ FlowPlayControl.getInstance().addPlayStateListener(new PlayStateListener() {
+ @Override
+ public void onStart() {
+ if (mView != null && currentMedia != null) {
+ currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING);
+ mView.onMusicPlaying();
+ mView.onMediaInfoChanged(currentMedia);
+ }
+ }
+
+ @Override
+ public void onPause() {
+ if (mView != null && currentMedia != null) {
+ currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP);
+ mView.onMusicPause();
+ mView.onMediaInfoChanged(currentMedia);
+ }
+ }
+
+ @Override
+ public void onStop() {
+ if (mView != null && currentMedia != null) {
+ currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP);
+ mView.onMusicStopped();
+ mView.onMediaInfoChanged(currentMedia);
+ }
+ }
+
+ @Override
+ public void onProgress(String s, long current, long total) {
+ if (mView != null) {
+ mView.onMusicProgress(current, total);
+ }
+ }
+ });
+
+ FlowPlayControl.getInstance().bindPlayService(context);
+ }
+
+ @Override
+ public void play(MediaInfoData mediaInfoData) {
+ FlowPlayControl.getInstance().doPlay();
+ }
+
+ @Override
+ public void pause(MediaInfoData mediaInfoData) {
+ FlowPlayControl.getInstance().doPause();
+ }
+
+ @Override
+ public void stop(MediaInfoData mediaInfoData) {
+ FlowPlayControl.getInstance().doStop();
+ }
+
+ @Override
+ public void pre() {
+ FlowPlayControl.getInstance().doPre();
+ }
+
+ @Override
+ public void next() {
+ FlowPlayControl.getInstance().doNext();
+ }
+}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/LaunchUtils.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/LaunchUtils.java
new file mode 100644
index 0000000000..653a77601e
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/LaunchUtils.java
@@ -0,0 +1,29 @@
+package com.mogo.module.media.utils;
+
+import android.content.Context;
+import android.content.Intent;
+
+/**
+ * @author congtaowang
+ * @since 2020-02-03
+ *
+ * 描述
+ */
+public class LaunchUtils {
+
+ /**
+ * 通过包名启动app
+ *
+ * @param context
+ * @param pkg 包名
+ */
+ public static void launchByPkg( Context context, String pkg ) throws Exception {
+ Intent intent = getLaunchIntentForPackage( context, pkg );
+ intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
+ context.startActivity( intent );
+ }
+
+ public static Intent getLaunchIntentForPackage( Context context, String pkg ) {
+ return context.getPackageManager().getLaunchIntentForPackage( pkg );
+ }
+}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/MusicControlBroadCast.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/MusicControlBroadCast.java
index 4a7a247c71..6ec22f102e 100644
--- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/MusicControlBroadCast.java
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/MusicControlBroadCast.java
@@ -459,21 +459,23 @@ public class MusicControlBroadCast {
}
}
-// return null;
- MediaInfoData mediaInfoData = new MediaInfoData();
- mediaInfoData.setMediaId("001jiOrk2g389Y");
- mediaInfoData.setBookInfo("");
- mediaInfoData.setType(1);
- mediaInfoData.setMediaName("恭喜发财 (广场舞)");
- mediaInfoData.setMediaSinger("刘德华");
- mediaInfoData.setMediaType("物流派");
- mediaInfoData.setPlayState(0);
- mediaInfoData.setLocalMedia(false);
- mediaInfoData.setCurTime(0);
- mediaInfoData.setMaxTime(410*1000);
- mediaInfoData.setMediaUrl("http://isure.stream.qqmusic.qq.com/C200000s2wCd3pzdnA.m4a?guid=2000001271&vkey=8CE1A876F5079A6E4E9BCB8306252EF152F3D4F237B3BF4C1450B50BA7E065D3D55A0735FD2E957B129E83FF7D7D5D398479D53FE2171DF0&uin=&fromtag=50");
- mediaInfoData.setMediaImg("http://music.qq.com/musicbox/img/uccpic_error.jpg");
- return mediaInfoData;//刘德华的恭喜发财
+ return null;
+
+ // 测试代码吧?
+// MediaInfoData mediaInfoData = new MediaInfoData();
+// mediaInfoData.setMediaId("001jiOrk2g389Y");
+// mediaInfoData.setBookInfo("");
+// mediaInfoData.setType(1);
+// mediaInfoData.setMediaName("恭喜发财 (广场舞)");
+// mediaInfoData.setMediaSinger("刘德华");
+// mediaInfoData.setMediaType("物流派");
+// mediaInfoData.setPlayState(0);
+// mediaInfoData.setLocalMedia(false);
+// mediaInfoData.setCurTime(0);
+// mediaInfoData.setMaxTime(410*1000);
+// mediaInfoData.setMediaUrl("http://isure.stream.qqmusic.qq.com/C200000s2wCd3pzdnA.m4a?guid=2000001271&vkey=8CE1A876F5079A6E4E9BCB8306252EF152F3D4F237B3BF4C1450B50BA7E065D3D55A0735FD2E957B129E83FF7D7D5D398479D53FE2171DF0&uin=&fromtag=50");
+// mediaInfoData.setMediaImg("http://music.qq.com/musicbox/img/uccpic_error.jpg");
+// return mediaInfoData;//刘德华的恭喜发财
}
/**
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/view/IMusicView.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/view/IMusicView.java
new file mode 100644
index 0000000000..d0379ff238
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/view/IMusicView.java
@@ -0,0 +1,21 @@
+package com.mogo.module.media.view;
+
+import com.mogo.commons.mvp.IView;
+import com.mogo.module.media.model.MediaInfoData;
+
+/**
+ * 音频显示类的接口
+ *
+ * @author tongchenfei
+ */
+public interface IMusicView extends IView {
+ void onMediaInfoChanged(MediaInfoData mediaInfoData);
+
+ void onMusicPlaying();
+
+ void onMusicPause();
+
+ void onMusicStopped();
+
+ void onMusicProgress(long current,long total);
+}