From 33b1451dc0c3868056d1030eb4f7077f9ed35cc4 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 13 Jul 2020 17:39:29 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BC=98=E5=8C=96=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E6=B5=AE=E7=AA=97=E5=8A=A8=E7=94=BB=EF=BC=9B=202.=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=9F=B3=E9=A2=91=E6=9B=B4=E6=96=B0=E4=B8=8D=E5=8F=8A?= =?UTF-8?q?=E6=97=B6=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/media/presenter/KwPresenter.java | 55 ++++++++++++++++++- .../media/widget/AnimCircleImageView.java | 16 +++++- .../module/media/window/MediaWindow2.java | 12 ++-- 3 files changed, 74 insertions(+), 9 deletions(-) diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java index a43c30f4af..a45a42bb6d 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java @@ -68,13 +68,27 @@ public class KwPresenter extends BaseMediaPresenter { }); kwapi.registerPlayerStatusListener((playerStatus, music) -> { - Logger.d(TAG, "onPlayerStatusListener: " + playerStatus); - Log.d(TAG, "onPlayerStatusListener: " + playerStatus); + Logger.d(TAG, "onPlayerStatusListener: " + playerStatus + " music: " + music.name); switch (playerStatus) { case BUFFERING: + if (currentMedia.getMediaName() == null || !currentMedia.getMediaName().equals(music.name)) { + // 说明是切了新歌,需要及时同步一下状态 + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); + currentMedia.setMediaName(music.name); + currentMedia.setMediaImg(""); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicPlaying(); + } kwapi.getSongPicUrl(music, onGetSongImgUrlListener); break; case PLAYING: + if (currentMedia.getMediaName() == null || !currentMedia.getMediaName().equals(music.name)) { + // 说明是切了新歌,需要及时同步一下状态 + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); + currentMedia.setMediaName(music.name); + currentMedia.setMediaImg(""); + mView.onMediaInfoChanged(currentMedia); + } currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); kwapi.getSongPicUrl(music, onGetSongImgUrlListener); startTrackTrackProgress(); @@ -105,6 +119,43 @@ public class KwPresenter extends BaseMediaPresenter { if (!isBind) { // 未绑定,需要重新绑定,同时第一次绑定初始化也是在此处 kwapi.bindAutoSdkService(); + }else if(kwapi.isKuwoRunning()){ + Music currentMusic = kwapi.getNowPlayingMusic(); + if (currentMedia.getMediaName() == null && currentMusic != null) { + // 当前处于绑定状态,且有音乐信息,需判断是否正在播放,进行界面刷新 + Log.d(TAG, "step1==" + currentMusic.name); + if (kwapi.getPlayerStatus() == PlayerStatus.BUFFERING || kwapi.getPlayerStatus() == PlayerStatus.PLAYING) { + Logger.d(TAG, "当前可能正在播放音乐,需要更新=1=" + currentMusic.name); + currentMedia.setMediaName(currentMusic.name); + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicPlaying(); + kwapi.getSongPicUrl(currentMusic, onGetSongImgUrlListener); + } else if (kwapi.getPlayerStatus() == PlayerStatus.INIT) { + Logger.d(TAG, "当前可能正在播放音乐,需要更新=3=" + currentMusic.name); + currentMedia.setMediaName(currentMusic.name); + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicStopped(); + } + } else if (currentMedia.getMediaName() != null && currentMusic != null && !currentMedia.getMediaName().equals(currentMusic.name)) { + Log.d(TAG, "step2==media: " + currentMedia.getMediaName() + " " + + "musicName: " + currentMusic.name + " status: " + kwapi.getPlayerStatus()); + if (kwapi.getPlayerStatus() == PlayerStatus.BUFFERING || kwapi.getPlayerStatus() == PlayerStatus.PLAYING) { + Logger.d(TAG, "当前可能正在播放音乐,需要更新=2=" + currentMusic.name); + currentMedia.setMediaName(currentMusic.name); + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicPlaying(); + kwapi.getSongPicUrl(currentMusic, onGetSongImgUrlListener); + }else if (kwapi.getPlayerStatus() == PlayerStatus.INIT) { + Logger.d(TAG, "当前可能正在播放音乐,需要更新=4=" + currentMusic.name); + currentMedia.setMediaName(currentMusic.name); + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicStopped(); + } + } } } } diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/AnimCircleImageView.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/AnimCircleImageView.java index 77cee5ce4e..6a0a8daab1 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/AnimCircleImageView.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/AnimCircleImageView.java @@ -13,6 +13,7 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.NinePatchDrawable; import android.util.AttributeSet; +import android.util.Log; import android.widget.ImageView; import com.mogo.module.common.utils.CarSeries; @@ -32,7 +33,8 @@ public class AnimCircleImageView extends ImageView { int savedDegree; boolean isRotateEnable; boolean isRotating; - private int delayMilliseconds = 450; +// private int delayMilliseconds = 450; + private int delayMilliseconds = 2000; private int mRotateAngleStep = 3; public AnimCircleImageView(Context context) { @@ -79,6 +81,7 @@ public class AnimCircleImageView extends ImageView { } public void startAnim() { + Log.d("AnimCircle", "startAnim====" + isRotating); if (isRotating){ return; } @@ -86,9 +89,12 @@ public class AnimCircleImageView extends ImageView { isRotating = true; currentDegree = savedDegree; invalidate(); + Log.d("AnimCircle", "invalidate=="); } public void stopAnim() { + Log.d("AnimCircle", "stopAnim==="); + removeCallbacks(loopInvalidate); isRotating = false; isRotateEnable = false; savedDegree = currentDegree; @@ -100,7 +106,7 @@ public class AnimCircleImageView extends ImageView { @Override protected void onDraw(Canvas canvas) { - + Log.d("AnimCircle", "onDraw===="); try { if (mDrawbleSrc == null) return; @@ -146,7 +152,9 @@ public class AnimCircleImageView extends ImageView { canvas.drawBitmap(output, defaultWidth / 2 - radius, defaultHeight / 2 - radius, null); canvas.restore(); if (isRotateEnable) { - postInvalidateDelayed(delayMilliseconds); + removeCallbacks(loopInvalidate); + postDelayed(loopInvalidate, delayMilliseconds); +// postInvalidateDelayed(delayMilliseconds); } } else { canvas.save(); @@ -161,6 +169,8 @@ public class AnimCircleImageView extends ImageView { } + private Runnable loopInvalidate = this::invalidate; + private Bitmap getCuttedPicture(Drawable DrawbleSrc) { Bitmap mBitmapOrigin = ((BitmapDrawable) DrawbleSrc).getBitmap(); int mWidth = mBitmapOrigin.getWidth(); diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java index 818bf5e792..5a8ab8bafc 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java @@ -182,10 +182,14 @@ public class MediaWindow2 implements IMusicView { } if (mCircleImg != null) { - com.bumptech.glide.request.RequestOptions options = - new com.bumptech.glide.request.RequestOptions() - .placeholder(R.drawable.module_media_default_music_img); - GlideApp.with(mContext).applyDefaultRequestOptions(options).load(mMediaInfoData.getMediaImg()).into(mCircleImg); + if(mMediaInfoData!=null&&mMediaInfoData.getMediaImg()!=null&&!mMediaInfoData.getMediaImg().isEmpty()) { + com.bumptech.glide.request.RequestOptions options = + new com.bumptech.glide.request.RequestOptions() + .placeholder(R.drawable.module_media_default_music_img); + GlideApp.with(mContext).applyDefaultRequestOptions(options).load(mMediaInfoData.getMediaImg()).into(mCircleImg); + }else{ + mCircleImg.setImageResource(R.drawable.module_media_default_music_img); + } } }