From 20a27d229cc5b9ece493169b64ff4c995820d0cb Mon Sep 17 00:00:00 2001 From: huangjian Date: Wed, 11 May 2022 18:41:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4=E6=92=AD=E6=94=BE=E8=83=8C?= =?UTF-8?q?=E6=99=AF=E9=9F=B3=E4=B9=90=E5=A2=9E=E5=8A=A0=E5=8D=95=E6=9B=B2?= =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E5=92=8C=E5=85=A8=E9=83=A8=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tutu/music/widget/MusicPlayerView.java | 39 ++++++--- .../drawable-xhdpi/icon_music_all_cycle.png | Bin 0 -> 872 bytes .../icon_music_single_cycle.png | Bin 0 -> 1021 bytes .../drawable-xhdpi/icon_room_music_voice.png | Bin 0 -> 947 bytes .../drawable-xhdpi/icon_room_music_voice.webp | Bin 292 -> 0 bytes .../res/layout/layout_music_player_view.xml | 28 +++++-- .../manager/agora/RtcEngineManager.java | 2 +- .../manager/trtc/TRTCEngineAdapter.java | 23 ++--- .../manager/trtc/TRtcEngineEventHandler.java | 8 +- .../manager/trtc/TRtcEngineManager.java | 4 +- .../yizhuan/xchat_android_core/DemoCache.java | 9 ++ .../music/model/PlayerModel.java | 79 +++++++++--------- 12 files changed, 114 insertions(+), 78 deletions(-) create mode 100644 app/src/module_music/res/drawable-xhdpi/icon_music_all_cycle.png create mode 100644 app/src/module_music/res/drawable-xhdpi/icon_music_single_cycle.png create mode 100644 app/src/module_music/res/drawable-xhdpi/icon_room_music_voice.png delete mode 100644 app/src/module_music/res/drawable-xhdpi/icon_room_music_voice.webp diff --git a/app/src/module_music/java/com/yizhuan/tutu/music/widget/MusicPlayerView.java b/app/src/module_music/java/com/yizhuan/tutu/music/widget/MusicPlayerView.java index 9d23f0438..492af2dfb 100644 --- a/app/src/module_music/java/com/yizhuan/tutu/music/widget/MusicPlayerView.java +++ b/app/src/module_music/java/com/yizhuan/tutu/music/widget/MusicPlayerView.java @@ -21,6 +21,7 @@ import com.yizhuan.erban.R; import com.yizhuan.erban.base.BaseMvpActivity; import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil; import com.yizhuan.tutu.music.activity.MusicListActivity; +import com.yizhuan.xchat_android_core.DemoCache; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.music.db.bean.LocalMusicBean; import com.yizhuan.xchat_android_core.music.event.CurrentMusicUpdateEvent; @@ -50,6 +51,7 @@ public class MusicPlayerView extends FrameLayout implements View.OnClickListener private ImageView musicListMore; private ImageView musicPlayPause; private ImageView nextBtn; + private ImageView musicPlayCycle; private SeekBar volumeSeekBar; private TextView musicName; private String imageBg; @@ -71,26 +73,34 @@ public class MusicPlayerView extends FrameLayout implements View.OnClickListener private void init() { EventBus.getDefault().register(this); LayoutInflater.from(getContext()).inflate(R.layout.layout_music_player_view, this, true); - musicFlagLayout = (FrameLayout) findViewById(R.id.music_flag_layout); + musicFlagLayout = findViewById(R.id.music_flag_layout); musicFlagLayout.setOnClickListener(this); - musicFlag = (ImageView) findViewById(R.id.music_flag); - musicBoxLayout = (RelativeLayout) findViewById(R.id.music_box_layout); + musicFlag = findViewById(R.id.music_flag); + musicBoxLayout = findViewById(R.id.music_box_layout); musicBoxLayout.setOnClickListener(this); - musicListMore = (ImageView) findViewById(R.id.music_list_more); + musicListMore = findViewById(R.id.music_list_more); musicListMore.setOnClickListener(this); - musicPlayPause = (ImageView) findViewById(R.id.music_play_pause); + musicPlayPause = findViewById(R.id.music_play_pause); musicPlayPause.setOnClickListener(this); - volumeSeekBar = (SeekBar) findViewById(R.id.voice_seek); + volumeSeekBar = findViewById(R.id.voice_seek); volumeSeekBar.setMax(100); volumeSeekBar.setProgress(PlayerModel.get().getCurrentVolume()); volumeSeekBar.setOnSeekBarChangeListener(this); - musicName = (TextView) findViewById(R.id.music_name); - nextBtn = (ImageView) findViewById(R.id.music_play_next); + musicName = findViewById(R.id.music_name); + nextBtn = findViewById(R.id.music_play_next); nextBtn.setOnClickListener(this); layoutMusicBgClick = findViewById(R.id.layout_music_bg_click); layoutMusicBgClick.setOnClickListener(this); layoutMusicBgClick.setVisibility(INVISIBLE); + + musicPlayCycle = findViewById(R.id.music_play_cycle); + musicPlayCycle.setOnClickListener(this); + if (DemoCache.readBgmSingleCycle()) { + musicPlayCycle.setImageResource(R.drawable.icon_music_single_cycle); + } else { + musicPlayCycle.setImageResource(R.drawable.icon_music_all_cycle); + } updateView(); } @@ -110,7 +120,7 @@ public class MusicPlayerView extends FrameLayout implements View.OnClickListener } private void showFlagInAnim() { - ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(musicBoxLayout, "translationX", 0, -UIUtil.dip2px(getContext(), 287)).setDuration(150); + ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(musicBoxLayout, "translationX", 0, -UIUtil.dip2px(getContext(), 317)).setDuration(150); objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); objectAnimator.start(); @@ -143,7 +153,7 @@ public class MusicPlayerView extends FrameLayout implements View.OnClickListener objectAnimator.start(); - ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(musicBoxLayout, "translationX", -UIUtil.dip2px(getContext(), 287), 0).setDuration(150); + ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(musicBoxLayout, "translationX", -UIUtil.dip2px(getContext(), 317), 0).setDuration(150); objectAnimator1.setInterpolator(new AccelerateDecelerateInterpolator()); objectAnimator1.setStartDelay(150); objectAnimator1.addListener(new AnimatorListenerAdapter() { @@ -220,7 +230,16 @@ public class MusicPlayerView extends FrameLayout implements View.OnClickListener MusicListActivity.openLocalMusicList(getContext()); } break; + case R.id.music_play_cycle: + if (DemoCache.readBgmSingleCycle()) { + DemoCache.saveBgmSingleCycle(false); + musicPlayCycle.setImageResource(R.drawable.icon_music_all_cycle); + } else { + DemoCache.saveBgmSingleCycle(true); + musicPlayCycle.setImageResource(R.drawable.icon_music_single_cycle); + } default: + break; } } diff --git a/app/src/module_music/res/drawable-xhdpi/icon_music_all_cycle.png b/app/src/module_music/res/drawable-xhdpi/icon_music_all_cycle.png new file mode 100644 index 0000000000000000000000000000000000000000..4748b63d109ef68dec2f26f4f23461ba8d12476e GIT binary patch literal 872 zcmV-u1DE`XP)Px&B1uF+R9Hvt*j=a!}ADDYMXU@#rGuLzBE*R!v z@3r=S)?Rz9wWqJYzkjr0Bz+^mHSgAlhii7Q5f4}J@Ku97sL z6ry#F+#eDJD~ieKD!>cy7NR1Be1hmP+SdD$A2JEyfVd`w{D=Fovz47r9=b>SQ6l&zo#@|dAsR$TWL0OUzl)JCL*m!c++GF_wn%4hr>qgNd|9spH=q|| yGd>s&z~_T;z?wx4-Fb)10*nCHy&c2O!{-3S3;!)tHtbFS0000Px&w@E}nR9Hvtm|N(jV-&`Jk5h6Qhuk2EZaTr1f zljJl*i5roGoJLbJZctK`G)R%eof|pRqlb4--+#}y_xtVHd-pfm>u&FFt@Zxi^{#Kd zYkguD6YXNW%z&qTVzUVU?;~t`5pW#vw4|SF8=lvcuze!%39uXRE^v{gABREzmw>}r zg`QX75ZYb^JPg}Q>`>@=2ObrAWMJFJ151DtfP+f@)!vmZ&rb&qYbbsQoZFw%oq=s% z2;2jl+GX_#>8zIYNYhsp*!DgtIl$!;g6QhTz+y?8I|JL!k-q_)(J=Z6coldL_zw8J zE5Q)G{eca@;YBB~*Gqb!-)3NhZRgpWzy%E_PXaee`e6c)|G2On*sODAW1XbJqit&p z16~K*Ta5k!R!VweQlJHPPvC9ftS+$8X$7`@Fz^*{Kyh@tq&vF8mP+z^u}>a;&}M7< zY~Y=)u)}}@cUy7v5wK8FqFfc*M*>@cql@x`lGY9YUI1h>M*(XjZK^FWD8iqWh9vfv zNqVv7s2p)WZ2o>o(waf`w$n%K-KFtqjj-+PHt7&aBXWqOKWe}&k?olb1+Mw+f4)P6 zZC?t!R1`N$y10u|+aCj`H1e_Md+NX|fQ@D0jgnT@fJ+HXsXGw(71#n?QtUc827C?hcv0FU z>Dn&9O&!~-#{m8UNR%U~PHBR+OIw7O0xuVhEt1moj3he?Y&)g!%W^;b0xal%;oE?Z z0KO?k=^Iid=HyY0ehlEdfLn_HS0p8Pb7W8*&YX2p(Of3!*&5`yDPj9i;PcXB$K4M3 zn?DBu-<%h&Kzy1WxJxbWLEF9pc&_|jFRABi;J$4?11u{F+klhXZr4G;=^?&u>~@2s z8@fi>_8vesolfk|+9YiI*620-pD*dHw)KW}YuAa(-$wTrB9ccZZ9B%;PMGh$j#_w#7e5A=l-*HY*paKo1eKZZ+n{V zw1neIE{5lU`y{2E?IfLn8{qkNu(*7eNCUomri; literal 0 HcmV?d00001 diff --git a/app/src/module_music/res/drawable-xhdpi/icon_room_music_voice.png b/app/src/module_music/res/drawable-xhdpi/icon_room_music_voice.png new file mode 100644 index 0000000000000000000000000000000000000000..44c0272a511f0e6d963e74fe9c701224f5d7b227 GIT binary patch literal 947 zcmV;k15EshP)Px&ZAnByR9Hvtm`$ivRTRg6|Fk4Q3{0i4k%gbZ}bOS3T%5Z@C`5pxD7ll=}sfi zEdjP2`|JdE17lKv&q}(|QNXq*0$%}3a=>Ouy3{eiwx0vO2WAvN&6aebBYw@6PVVB zQXt^BOZqgs&i0SMqU8HJN#W;}r8E!Qj$mm-t^vy=oy=Qg`#A7YYU~v7rlhM?Hfa<% z9Y{6(QDzsWHk&Ewa?$3tj{&b_#^V&{N&2e{x*=dm!{*!G53EmZG*!~|I>1MPS98XX zNQzjgEA0S24D=RImFDGk07vF{qX76LN!#j~xE;U;fwu~vPD@JX@L|*10XzV#EC9YK z>B&yB@Rw0c3ZRB0MQJaTc3Ai`U|j*xElHC)4Y)rk;dxxYNqWB1fTP9STmaQCX;Y^G z?~OjA0IIZmYljc-0e0m8pOExoQ!5?tdXB=rOfyqfnm+*E&*-@UbW8f9*}!G`V!TIE zH0ilwJ75F4CebKGga3OK*D~RsIk#H?<~wvrkgA zln=yqq_jwFA^Rk4sk%o~ffJZV6aNgW)n0hQE#exqRnlGCaqo-b5mK6Wvp>@`3#S#^ z4mS$_j9YX~;?}$(xlu=X4*6VCy7@0P_J{x{)_x+f?6MTaJs__2wJX&DNf95FWyFAM z1h%7<3>TP?Lp31j-O9Ah47z%o+MW(Xqni1?*m(* VY&_JAK{@~c002ovPDHLkV1j_PxD)^Y literal 0 HcmV?d00001 diff --git a/app/src/module_music/res/drawable-xhdpi/icon_room_music_voice.webp b/app/src/module_music/res/drawable-xhdpi/icon_room_music_voice.webp deleted file mode 100644 index 4a099a6c27334ba3443dc5f7f844a8f481dcfe18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmV+<0o(pkNk&E-0RRA3MM6+kP&il$0000G0000W001BW06|PpNX!5L00E!Dux%v8 zvGY7LLqtTWqt&KshW1xaKDDK7jg8Y>X*6{o(lsi20*8?#tIGb5ySuyVt(|(0VO4{D+U3QJ`}(zveEEOeP`d(clOPEP1`yOxsY56*cBBz2zb;JdRYa>!z*yz z1Mki^rJL)YfN{nk<>$bn;7~jQ4i>5X;?tqp-KO#ZwjSjd+luMe0aj2rASwU=05Agp qodGH#03iTAkw~9QrKBREqlf^o5(#Ml02_h5J`Ml?{`gG*0001k|99g6 diff --git a/app/src/module_music/res/layout/layout_music_player_view.xml b/app/src/module_music/res/layout/layout_music_player_view.xml index 4389902cc..c14390c5f 100644 --- a/app/src/module_music/res/layout/layout_music_player_view.xml +++ b/app/src/module_music/res/layout/layout_music_player_view.xml @@ -37,11 +37,12 @@ android:id="@+id/layout_music_bg_click" android:layout_width="match_parent" android:layout_height="match_parent" - android:visibility="gone"> + android:visibility="gone" + tools:visibility="visible"> @@ -94,22 +96,30 @@ android:id="@+id/music_play_pause" android:layout_width="22dp" android:layout_height="22dp" - android:layout_marginEnd="21dp" + android:layout_marginEnd="16dp" android:src="@drawable/icon_music_play" /> + + + diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/agora/RtcEngineManager.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/agora/RtcEngineManager.java index 281a251dc..137325b80 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/agora/RtcEngineManager.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/agora/RtcEngineManager.java @@ -252,7 +252,7 @@ public class RtcEngineManager extends BaseEngine { @Override public int getAudioMixingCurrentPosition() { - if (mRtcEngine != null) { + if (mRtcEngine == null) { return -1; } int currentPosition = mRtcEngine.getAudioMixingCurrentPosition(); diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRTCEngineAdapter.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRTCEngineAdapter.java index b834d3b13..d9ea90dfa 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRTCEngineAdapter.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRTCEngineAdapter.java @@ -644,7 +644,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { @Override public void onAudioEffectFinished(int effectId, int code) { - TRTCEngineAdapterListener.onAudioEffectFinished(effectId); + // TRTCEngineAdapterListener.onAudioEffectFinished(effectId); } }; private TRTCEffectManager sTRTCEffectManager; @@ -715,12 +715,10 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { sTRTCEffectManager.setMusicObserver(new TXAudioEffectManager.TXMusicPlayObserver() { @Override public void onStart(int id, int errCode) { - } @Override public void onPlayProgress(int id, long curPtsMS, long durationMS) { - } @Override @@ -1357,12 +1355,9 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { } curBgmcycle = 1; totalBgmcycle = cycle; - trtcCloud.getAudioEffectManager().stopPlayMusic(mBGMId); + sTRTCEffectManager.stopEffect(mBGMId); mBGMId++; - final TXAudioEffectManager.AudioMusicParam audioMusicParam = new TXAudioEffectManager.AudioMusicParam(mBGMId, filePath); - audioMusicParam.publish = true; //上行 - audioMusicParam.loopCount = cycle; - trtcCloud.getAudioEffectManager().startPlayMusic(audioMusicParam); + sTRTCEffectManager.playEffect(mBGMId,filePath,0,0,0,0,true); return 0; } @@ -1376,7 +1371,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { mBgmFilePath = ""; bgmisLoop = false; totalBgmcycle = 0; - trtcCloud.getAudioEffectManager().stopPlayMusic(mBGMId); + sTRTCEffectManager.stopEffect(mBGMId); return 0; } @@ -1385,7 +1380,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { if (!enableAudioFlag) { return -1; } - trtcCloud.getAudioEffectManager().pausePlayMusic(mBGMId); + sTRTCEffectManager.pauseEffect(mBGMId); return 0; } @@ -1394,7 +1389,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { if (!enableAudioFlag) { return -1; } - trtcCloud.getAudioEffectManager().resumePlayMusic(mBGMId); + sTRTCEffectManager.resumeEffect(mBGMId); return 0; } @@ -1403,7 +1398,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { if (!enableAudioFlag) { return -1; } - trtcCloud.getAudioEffectManager().setAllMusicVolume(volume); + sTRTCEffectManager.setEffectsVolume(volume); return 0; } @@ -1412,7 +1407,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { if (!enableAudioFlag) { return -1; } - trtcCloud.getAudioEffectManager().setMusicPlayoutVolume(mBGMId, volume); + sTRTCEffectManager.setVolumeOfEffect(mBGMId,volume); mMusicPlayoutVolume = volume; return 0; } @@ -1422,7 +1417,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { if (!enableAudioFlag) { return -1; } - trtcCloud.getAudioEffectManager().setMusicPublishVolume(mBGMId, volume); + sTRTCEffectManager.setVolumeOfEffect(mBGMId,volume); mMusicPublishVolume = volume; return 0; } diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRtcEngineEventHandler.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRtcEngineEventHandler.java index fb31625e9..11439278d 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRtcEngineEventHandler.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRtcEngineEventHandler.java @@ -230,14 +230,14 @@ public class TRtcEngineEventHandler implements IRTCEngineHandler { @Override public void onAudioMixingFinished() {//伴奏播放已结束回调 - IMNetEaseManager.get().getChatRoomEventObservable().onNext( - new RoomEvent().setEvent(RoomEvent.METHOD_ON_AUDIO_MIXING_FINISHED) - ); + } @Override public void onAudioEffectFinished(int soundId) { - + IMNetEaseManager.get().getChatRoomEventObservable().onNext( + new RoomEvent().setEvent(RoomEvent.METHOD_ON_AUDIO_MIXING_FINISHED) + ); } @Override diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRtcEngineManager.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRtcEngineManager.java index caeea67fc..7b91005e7 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRtcEngineManager.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/trtc/TRtcEngineManager.java @@ -208,7 +208,7 @@ public class TRtcEngineManager extends BaseEngine { result = mRtcEngine.resumeAudioMixing(); } else { LocalMusicBean current = PlayerModel.get().getCurrent(); - startAudioMixing(current.getLocalUri(), false, 1); + startAudioMixing(current.getLocalUri(), false, 0); } isMusicPlaying = true; @@ -248,7 +248,7 @@ public class TRtcEngineManager extends BaseEngine { @Override public int getAudioMixingCurrentPosition() { - if (mRtcEngine != null) { + if (mRtcEngine == null) { return -1; } int currentPosition = mRtcEngine.getAudioMixingCurrentPosition(); diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/DemoCache.java b/core/src/main/java/com/yizhuan/xchat_android_core/DemoCache.java index 5f5b9d9da..2358ffb22 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/DemoCache.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/DemoCache.java @@ -61,6 +61,7 @@ public class DemoCache { private static final String KEY_FILTRATE_TYPE = "FilTrateType"; private static final String KEY_RED_PACKAGE = "RedPackage"; private static final String KEY_AT_MSG_UUID = "AtMsgUuid"; + private static final String KEY_BGM_SINGLE_CYCLE = "key_bgm_single_cycle"; /** * 保存网页域名 */ @@ -338,5 +339,13 @@ public class DemoCache { return SettingsPref.instance(BasicConfig.INSTANCE.getAppContext()).getBoolean(KEY_BOX_MESSAGE + AuthModel.get().getCurrentUid(), true); } + public static void saveBgmSingleCycle(boolean value) { + SettingsPref.instance(BasicConfig.INSTANCE.getAppContext()).putBoolean(KEY_BGM_SINGLE_CYCLE , value); + } + + public static Boolean readBgmSingleCycle() { + return SettingsPref.instance(BasicConfig.INSTANCE.getAppContext()).getBoolean(KEY_BGM_SINGLE_CYCLE, false); + } + } diff --git a/core/src/model_music/java/com/yizhuan/xchat_android_core/music/model/PlayerModel.java b/core/src/model_music/java/com/yizhuan/xchat_android_core/music/model/PlayerModel.java index 87ffce97e..1f2e256a5 100644 --- a/core/src/model_music/java/com/yizhuan/xchat_android_core/music/model/PlayerModel.java +++ b/core/src/model_music/java/com/yizhuan/xchat_android_core/music/model/PlayerModel.java @@ -4,6 +4,7 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import com.yizhuan.xchat_android_core.DemoCache; import com.yizhuan.xchat_android_core.base.BaseModel; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; @@ -36,9 +37,9 @@ import io.realm.RealmResults; */ public class PlayerModel extends BaseModel implements IPlayerModel { + private final String AUDIO_SUFFIX_MP3 = ".mp3"; private boolean isRefresh; private List playerListMusicInfos; - private final String AUDIO_SUFFIX_MP3 = ".mp3"; private LocalMusicBean current; private List localMusicBeanList; private long currentLocalId; @@ -46,15 +47,7 @@ public class PlayerModel extends BaseModel implements IPlayerModel { private int volume; private int recordingVolume; private Disposable mDisposable; - - - private static final class Helper { - public static final PlayerModel INSTANCE = new PlayerModel(); - } - - public static PlayerModel get() { - return Helper.INSTANCE; - } + private PlayHandler handler = new PlayHandler(this); private PlayerModel() { playerListMusicInfos = new ArrayList<>(); @@ -85,6 +78,10 @@ public class PlayerModel extends BaseModel implements IPlayerModel { }); } + public static PlayerModel get() { + return Helper.INSTANCE; + } + @Override public boolean isRefresh() { return isRefresh; @@ -100,31 +97,6 @@ public class PlayerModel extends BaseModel implements IPlayerModel { return current; } - private PlayHandler handler = new PlayHandler(this); - - static class PlayHandler extends Handler { - private WeakReference mWeakReference; - - PlayHandler(PlayerModel playerCore) { - mWeakReference = new WeakReference<>(playerCore); - } - - @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - switch (msg.what) { - case 0: - PlayerModel playerCore = mWeakReference.get(); - if (playerCore != null) - playerCore.playNext(); - break; - case 1: - break; - default: - } - } - } - @Override public List getPlayerListMusicInfos() { return playerListMusicInfos; @@ -167,7 +139,6 @@ public class PlayerModel extends BaseModel implements IPlayerModel { refreshLocalMusic(null); } - @Override public void addMusicToPlayerList(LocalMusicBean localMusicInfo) { PlayerDbModel.get().addToPlayerList(localMusicInfo.getLocalId()); @@ -243,7 +214,7 @@ public class PlayerModel extends BaseModel implements IPlayerModel { } AudioEngineManager.get().adjustAudioMixingVolume(volume); AudioEngineManager.get().adjustRecordingSignalVolume(recordingVolume); - int result = AudioEngineManager.get().startAudioMixing(localUri, false, 1); + int result = AudioEngineManager.get().startAudioMixing(localUri, false, 0); if (result == -1) { return -1; } @@ -276,7 +247,7 @@ public class PlayerModel extends BaseModel implements IPlayerModel { @Override public synchronized int playNext() { - if(playerListMusicInfos==null || playerListMusicInfos.isEmpty()){ + if (playerListMusicInfos == null || playerListMusicInfos.isEmpty()) { return -3; } if (current == null) { @@ -350,4 +321,36 @@ public class PlayerModel extends BaseModel implements IPlayerModel { } } + + private static final class Helper { + public static final PlayerModel INSTANCE = new PlayerModel(); + } + + static class PlayHandler extends Handler { + private WeakReference mWeakReference; + + PlayHandler(PlayerModel playerCore) { + mWeakReference = new WeakReference<>(playerCore); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + switch (msg.what) { + case 0: + PlayerModel playerCore = mWeakReference.get(); + if (playerCore != null) { + if (DemoCache.readBgmSingleCycle()) { + playerCore.play(playerCore.getCurrent()); + } else { + playerCore.playNext(); + } + } + break; + case 1: + break; + default: + } + } + } }