From b6b4c213272ed7147f04b925c325372ae0e3f696 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 18 Jul 2025 18:14:22 +0800 Subject: [PATCH] =?UTF-8?q?[8.1.2+]=20[media]=20[=E6=94=B6=E6=9D=9Fmusic]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/charter/passenger/model/MusicModel.kt | 26 +--- .../ui/bottom/impl/MusicCheckView.kt | 18 +-- .../passenger/ui/music/MusicControlView.kt | 2 +- .../ui/music/list/MusicListItemAdapter.kt | 10 +- .../passenger/ui/music/list/MusicListView.kt | 6 +- .../ui/music/list/MusicListViewModel.kt | 27 ++-- .../ui/music/playing/MusicPlayingView.kt | 10 +- .../ui/music/playing/MusicPlayingViewModel.kt | 84 +++++++------ .../passenger/ui/video/ConsultVideoPlayer.kt | 10 +- .../mogo/och/biz/media}/AudioFocusManager.kt | 23 ++-- .../com/mogo/och/biz/media/MediaProvider.kt | 115 ++++++++++++++++++ .../mogo/och/biz/media/MediaServiceManager.kt | 18 +++ .../mogo/och/biz/media}/audition/Audition.kt | 4 +- .../media}/audition/AuditionCacheManager.kt | 7 +- .../biz/media}/audition/AuditionManager.kt | 55 +++++---- .../common/module/biz/media/IMediaDispatch.kt | 9 -- .../common/module/biz/media/IMediaListener.kt | 28 +++++ .../common/module/biz/media/MediaManager.kt | 89 ++++++++++++-- .../common/module/biz/media/MediaService.kt | 47 +++++++ .../audition => biz/media/data}/MusicData.kt | 2 +- .../common/module/constant/OchCommonConst.kt | 2 + .../och/common/module/voice/VoiceNotice.kt | 8 +- .../common/module/wigets/media/MediaBean.kt | 2 +- .../wigets/media/MediaPlayerFragment.kt | 4 +- .../unmanned/passenger/ui/bar/RightBarView.kt | 18 +-- .../unmanned/passenger/ui/music/MusicModel.kt | 64 ++++++---- .../unmanned/passenger/ui/music/MusicView.kt | 5 - .../passenger/ui/music/bar/MusicBarView.kt | 4 +- .../ui/music/bar/MusicBarViewModel.kt | 2 +- .../ui/music/list/MusicListItemAdapter.kt | 6 +- .../passenger/ui/music/list/MusicListView.kt | 2 +- .../ui/music/list/MusicListViewModel.kt | 13 +- .../ui/music/playing/MusicPlayingView.kt | 9 +- .../ui/music/playing/MusicPlayingViewModel.kt | 2 +- .../passenger/ui/video/InfoVideoView.kt | 6 +- .../passenger/widget/ConsultVideoPlayer.kt | 10 +- 36 files changed, 508 insertions(+), 239 deletions(-) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/manager/audiofocus => biz/src/main/java/com/mogo/och/biz/media}/AudioFocusManager.kt (72%) create mode 100644 OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaProvider.kt create mode 100644 OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaServiceManager.kt rename OCH/common/{common/src/main/java/com/mogo/och/common/module/manager => biz/src/main/java/com/mogo/och/biz/media}/audition/Audition.kt (98%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/manager => biz/src/main/java/com/mogo/och/biz/media}/audition/AuditionCacheManager.kt (97%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/manager => biz/src/main/java/com/mogo/och/biz/media}/audition/AuditionManager.kt (81%) delete mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IMediaDispatch.kt create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IMediaListener.kt create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaService.kt rename OCH/common/common/src/main/java/com/mogo/och/common/module/{manager/audition => biz/media/data}/MusicData.kt (94%) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt index c035b0ed4a..f7de8e985d 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt @@ -3,10 +3,9 @@ package com.mogo.och.charter.passenger.model import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.utilcode.util.TAG -import com.mogo.och.common.module.manager.audition.AuditionManager -import com.mogo.och.common.module.manager.audition.PlayState import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.common.module.biz.media.MediaManager import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable @@ -23,36 +22,21 @@ object MusicModel : IOchAutopilotStatusListener, IOrderStatusChangeListener { override fun onAutopilotStatusResponse(state: Int) { + // 自驾状态变化 第一次进入自驾 如果音乐属于暂停状态 开始播放 如果没有播放就播放第一首 if(state==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { val string = SharedPrefsMgr.getInstance().getString(startMusicWithOrderKey) if (string == null) { CharterPassengerModel.getCurrentOrderInfo()?.let { RxUtils.disposeSubscribe(stopMusicDisposable) SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo) - AuditionManager.musicList.forEach {music-> - if(music.state==PlayState.Pause){ - AuditionManager.toggle(music) - return - } - } - if(!AuditionManager.isPlaying()) { - AuditionManager.playFirst() - } + MediaManager.Audition.replayOrplayFirst() } } else { CharterPassengerModel.getCurrentOrderInfo()?.let { if (it.orderNo != string) { RxUtils.disposeSubscribe(stopMusicDisposable) SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo) - AuditionManager.musicList.forEach {music-> - if(music.state==PlayState.Pause){ - AuditionManager.toggle(music) - return - } - } - if(!AuditionManager.isPlaying()) { - AuditionManager.playFirst() - } + MediaManager.Audition.replayOrplayFirst() } } } @@ -69,7 +53,7 @@ object MusicModel : IOchAutopilotStatusListener, IOrderStatusChangeListener { CharterPassengerModel.getCurrentOrderInfo()?.let { RxUtils.disposeSubscribe(stopMusicDisposable) stopMusicDisposable = RxUtils.createSubscribe(60_000) { - AuditionManager.stop() + MediaManager.Audition.stop() } } } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt index 5b88a42404..59d392c0e3 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/MusicCheckView.kt @@ -14,9 +14,10 @@ import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.SimpleTarget import com.bumptech.glide.request.transition.Transition import com.mogo.och.charter.passenger.R -import com.mogo.och.common.module.manager.audition.AuditionManager -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.common.module.biz.media.MediaManager +import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import kotlinx.android.synthetic.main.charter_p_bottom_music.view.aciv_center_image import kotlinx.android.synthetic.main.charter_p_bottom_music.view.actv_title import kotlinx.android.synthetic.main.charter_p_bottom_music.view.aciv_playing @@ -27,7 +28,7 @@ open class MusicCheckView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), AuditionManager.MusicDataChangeListener { +) : ConstraintLayout(context, attrs, defStyleAttr), MusicDataChangeListener { companion object { private const val TAG = "StopSiteView" @@ -87,11 +88,12 @@ open class MusicCheckView @JvmOverloads constructor( actv_title.setTextColor(context.getColor(R.color.charter_p_090f28)) aciv_center_image.setImageResource(normalDrawable) - if(AuditionManager.isPlaying()){ + + if(MediaManager.Audition.isPlaying()==true){ default_info.visibility = View.GONE aciv_playing.visibility = View.VISIBLE aciv_playing_bg.visibility = View.VISIBLE - AuditionManager.musicDataPlaying?.let { + MediaManager.Audition.getPlaying()?.let { Glide.with(context) .load(it.coverHeadImageUrl) .apply(RequestOptions().placeholder(R.drawable.charter_p_music_bg_relax_head)) @@ -140,7 +142,7 @@ open class MusicCheckView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() - AuditionManager.addDataChangeListener(TAG,this) + MediaManager.Audition.addListener(TAG,this) parent?.let { if (parent is ConstraintLayout) { if (backageViewId > 0) { @@ -155,7 +157,7 @@ open class MusicCheckView @JvmOverloads constructor( override fun onDetachedFromWindow() { super.onDetachedFromWindow() - AuditionManager.removeDataChangeListener(TAG) + MediaManager.Audition.removeListener(TAG) } override fun updateState(oldData: MusicData?, musicData: MusicData) { diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlView.kt index e149293200..466c206b8a 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlView.kt @@ -8,7 +8,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.ui.music.list.MusicListView -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.data.MusicData import kotlinx.android.synthetic.main.charter_p_music.view.mlv_list import kotlinx.android.synthetic.main.charter_p_music.view.mpv_music_info diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt index 9db6901ac1..52a5a4598a 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt @@ -13,8 +13,8 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.charter.passenger.R -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import me.jessyan.autosize.AutoSizeCompat /** @@ -83,7 +83,7 @@ class MusicListItemAdapter( holder.musicName.setTypeface(null,Typeface.NORMAL) } - if (musicData.state==PlayState.Playing) { + if (musicData.state== PlayState.Playing) { holder.musicPlayState.visibility = View.VISIBLE }else{ holder.musicPlayState.visibility = View.GONE @@ -105,7 +105,7 @@ class MusicListItemAdapter( notifyItemInserted(dataList.size) } - fun upDateMusicData(oldData: MusicData?,musicData: MusicData) { + fun upDateMusicData(oldData: MusicData?, musicData: MusicData) { dataList.forEachIndexed { index, musicDataIn -> if (musicDataIn.id==musicData.id) { musicDataIn.state = musicData.state @@ -143,7 +143,7 @@ class MusicListItemAdapter( } interface ClickListener { - fun clickItem(musicData: MusicData,position: Int) + fun clickItem(musicData: MusicData, position: Int) } } \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt index df45abfece..73c55683fc 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt @@ -9,7 +9,7 @@ import androidx.lifecycle.findViewTreeViewModelStoreOwner import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.charter.passenger.R -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.data.MusicData import kotlinx.android.synthetic.main.charter_p_music_list.view.rv_music_list class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillback, @@ -64,7 +64,7 @@ class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillb lineAdapter.addOneData(it) } - override fun updateMusicData(oldData: MusicData?,musicData: MusicData) { + override fun updateMusicData(oldData: MusicData?, musicData: MusicData) { lineAdapter.upDateMusicData(oldData,musicData) CallerLogger.d(TAG,"${Thread.currentThread().name}----更新数据${oldData}-----${musicData}") } @@ -73,7 +73,7 @@ class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillb lineAdapter.setSelect(nextMusicData,preMusicData) } - override fun clickItem(musicData: MusicData,position: Int) { + override fun clickItem(musicData: MusicData, position: Int) { // 通知主页面去显示详情 this.checkListener?.checkItem(musicData) } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt index ae13884abf..0679c371bf 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt @@ -3,29 +3,23 @@ package com.mogo.och.charter.passenger.ui.music.list import androidx.lifecycle.ViewModel import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.manager.audition.AuditionManager -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.MediaManager +import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MusicData -class MusicListViewModel : ViewModel(), - AuditionManager.MusicDataChangeListener { +class MusicListViewModel : ViewModel(), MusicDataChangeListener { private val TAG = MusicListViewModel::class.java.simpleName private var viewCallback: IMusicListViewCaLillback? = null - init { - - } - fun setDistanceCallback(viewCallback: IMusicListViewCaLillback) { this.viewCallback = viewCallback - viewCallback.addAllData(AuditionManager.musicList) - CallerLogger.d(TAG,"初始化音乐${AuditionManager.musicList.size}") - AuditionManager.addDataChangeListener(TAG,this) + MediaManager.Audition.addListener(TAG,this) } override fun onCleared() { - AuditionManager.removeDataChangeListener(TAG) + MediaManager.Audition.removeListener(TAG) super.onCleared() this.viewCallback = null } @@ -33,10 +27,15 @@ class MusicListViewModel : ViewModel(), interface IMusicListViewCaLillback { fun addAllData(data:MutableList) fun addOneData(it: MusicData) - fun updateMusicData(oldData: MusicData?,musicData: MusicData) + fun updateMusicData(oldData: MusicData?, musicData: MusicData) fun upDateSelectMusic(nextMusicData: MusicData, preMusicData: MusicData?) } + override fun onDataDis(musicList: MutableList) { + viewCallback?.addAllData(musicList) + CallerLogger.d(TAG,"初始化音乐${musicList.size}") + } + override fun addOneData(it: MusicData) { CallerLogger.d(TAG,"添加音乐:${it.songName}--${it.path}") UiThreadHandler.post({ @@ -44,7 +43,7 @@ class MusicListViewModel : ViewModel(), }, UiThreadHandler.MODE.QUEUE) } - override fun updateState(oldData: MusicData?,musicData: MusicData) { + override fun updateState(oldData: MusicData?, musicData: MusicData) { UiThreadHandler.post({ viewCallback?.updateMusicData(oldData, musicData) }, UiThreadHandler.MODE.QUEUE) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt index 9c2c870f7b..48ce0fcfb9 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt @@ -17,8 +17,8 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.TimeTransformUtils import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.ui.music.list.MusicListViewModel -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import com.mogo.och.common.module.utils.DateTimeUtil import kotlinx.android.synthetic.main.charter_p_music_playing.view.iv_music_cover import kotlinx.android.synthetic.main.charter_p_music_playing.view.iv_music_cover_bg @@ -123,7 +123,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi tv_tag.text = musicData.tag.first() tv_playing_time.text = DateTimeUtil.second2Time(0) tv_playing_during.text = TimeTransformUtils.stringForTime(musicData.duration.toInt()) - if(musicData.state==PlayState.Playing){ + if(musicData.state== PlayState.Playing){ iv_toggle.setImageResource(R.drawable.charter_p_music_pause) startAnimal() }else{ @@ -168,7 +168,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi } override fun setPlayOrpause(it: MusicData) { - if(it.state==PlayState.Playing){ + if(it.state== PlayState.Playing){ iv_toggle.setImageResource(R.drawable.charter_p_music_pause) startAnimal() }else{ @@ -193,7 +193,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi tv_playing_during.text = TimeTransformUtils.stringForTime(duration.toInt()) } - override fun setSelect(currentMusicData: MusicData,preMusicData: MusicData?) { + override fun setSelect(currentMusicData: MusicData, preMusicData: MusicData?) { viewListModel?.selectMusic(currentMusicData,preMusicData) } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt index 17e3061624..d4acba8349 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt @@ -3,32 +3,39 @@ package com.mogo.och.charter.passenger.ui.music.playing import androidx.lifecycle.ViewModel import com.elegant.utils.UiThreadHandler import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.audition.AuditionManager -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.MediaManager +import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MusicData -class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListener { +class MusicPlayingViewModel : ViewModel(), MusicDataChangeListener { private val TAG = MusicPlayingViewModel::class.java.simpleName private var viewCallback: IMusicPlayingViewCallback? = null - private var checkMusicData:MusicData?=null + private var checkMusicData: MusicData?=null - init { - - } + private val musicDataList = mutableListOf() fun setDistanceCallback(viewCallback: IMusicPlayingViewCallback) { this.viewCallback = viewCallback - AuditionManager.addDataChangeListener(TAG,this) + MediaManager.Audition.addListener(TAG,this) } override fun onCleared() { super.onCleared() - AuditionManager.removeDataChangeListener(TAG) + MediaManager.Audition.removeListener(TAG) this.viewCallback = null } + override fun onDataDis(musicList: MutableList) { + musicDataList.addAll(musicDataList) + } + + override fun addOneData(it: MusicData) { + musicDataList.add(it) + } + fun setMusicData(musicData: MusicData) { this.checkMusicData = musicData this.viewCallback?.setViewData(musicData) @@ -38,9 +45,8 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen if(checkMusicData!=null){ setMusicData(this.checkMusicData!!) }else{ - val musicList = AuditionManager.musicList - if(musicList.size>0){ - val first = musicList.first() + if (musicDataList.isNotEmpty()) { + val first = musicDataList.first() setMusicData(first) viewCallback?.setSelect(first,null) } @@ -50,33 +56,34 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen fun toggle() { checkMusicData?.let { CallerLogger.d(TAG,"toggle:${it.songName}") - AuditionManager.toggle(it) + MediaManager.Audition.toggle(it) } } fun showPreMusic() { checkMusicData?.let { - val playing = AuditionManager.isPlaying() - val nextMusicData = AuditionManager.getPreMusicData(it) - val preTempMusic = checkMusicData - setMusicData(nextMusicData) - viewCallback?.setSelect(nextMusicData,preTempMusic) - if(playing){ - AuditionManager.play(nextMusicData) + MediaManager.Audition.getPreAuditionData(it)?.let { + val preTempMusic = checkMusicData + setMusicData(it) + viewCallback?.setSelect(it,preTempMusic) + if(MediaManager.Audition.isPlaying()==true){ + MediaManager.Audition.play(it) + } } } } fun showNextMusic() { checkMusicData?.let { - val playing = AuditionManager.isPlaying() - val nextMusicData = AuditionManager.getNextMusicData(it) - val preTempMusic = checkMusicData - setMusicData(nextMusicData) - viewCallback?.setSelect(nextMusicData,preTempMusic) - if(playing){ - AuditionManager.play(nextMusicData) + MediaManager.Audition.getNextAuditionData(it)?.let { + val preTempMusic = checkMusicData + setMusicData(it) + viewCallback?.setSelect(it,preTempMusic) + if(MediaManager.Audition.isPlaying()==true){ + MediaManager.Audition.play(it) + } } + } } @@ -84,10 +91,10 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen fun setViewData(musicData: MusicData) fun setPlayOrpause(it: MusicData) fun setProgress(currentPlay: Long, duration: Long) - fun setSelect(currentMusicData: MusicData,preMusicData: MusicData?) + fun setSelect(currentMusicData: MusicData, preMusicData: MusicData?) } - override fun updateState(oldData:MusicData?,musicData: MusicData) { + override fun updateState(oldData: MusicData?, musicData: MusicData) { checkMusicData?.let { if(it.id==musicData.id){ it.state = musicData.state @@ -115,24 +122,25 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen viewCallback?.setPlayOrpause(it) } } - val nextMusicData = AuditionManager.getNextMusicData(it) - val preTempMusic = checkMusicData - setMusicData(nextMusicData) - viewCallback?.setSelect(nextMusicData,preTempMusic) - AuditionManager.play(nextMusicData) + MediaManager.Audition.getNextAuditionData(it)?.let { nextMusicData-> + val preTempMusic = checkMusicData + setMusicData(nextMusicData) + viewCallback?.setSelect(nextMusicData,preTempMusic) + MediaManager.Audition.play(nextMusicData) + } + } } fun seekTo(progress: Int) { - AuditionManager.seekTo(progress) + MediaManager.Audition.seekTo(progress) } fun setClickMusicData(musicData: MusicData) { CallerLogger.d(TAG,"setClickMusicData:${musicData.songName}") setMusicData(musicData) - val playing = AuditionManager.isPlaying() - if(playing){ - AuditionManager.play(musicData) + if(MediaManager.Audition.isPlaying()==true){ + MediaManager.Audition.play(musicData) } } } \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt index 1e515485c9..114aa58ccc 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt @@ -24,7 +24,7 @@ import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.utils.FullVideoUtils -import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager +import com.mogo.och.common.module.biz.media.MediaManager import com.mogo.och.common.module.wigets.media.MediaItem import com.mogo.skin.widget.SkinImageView import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack @@ -133,7 +133,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { start.setImageResource(R.drawable.charter_p_function_video_player_pause_small) } showOrHideStartPlayButton(false) - AudioFocusManager.setVideoFocusChange(true) + MediaManager.setVideoFocusChange(true) } else -> { if(isIfCurrentIsFullscreen){ @@ -142,7 +142,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { start.setImageResource(R.drawable.charter_p_function_video_player_start_small) } showOrHideStartPlayButton(true) - AudioFocusManager.setVideoFocusChange(false) + MediaManager.setVideoFocusChange(false) } } } @@ -256,7 +256,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { override fun onCompletion() { CallerLogger.d(TAG,"onCompletion") - AudioFocusManager.setVideoFocusChange(false) + MediaManager.setVideoFocusChange(false) start.setImageResource(R.drawable.charter_p_function_video_player_start_small) } @@ -279,7 +279,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { override fun onError(what: Int, extra: Int) { super.onError(what, extra) CallerLogger.d(TAG,"onError--${what}--${extra}") - AudioFocusManager.setVideoFocusChange(false) + MediaManager.setVideoFocusChange(false) mThumbImageViewLayout?.visibility = View.VISIBLE ToastCharterUtils.showToastLong("哎呀,出错了,看看其他视频吧") currentTime = -1 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocus/AudioFocusManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/AudioFocusManager.kt similarity index 72% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocus/AudioFocusManager.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/AudioFocusManager.kt index a04cb103c2..46f6ee3b40 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audiofocus/AudioFocusManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/AudioFocusManager.kt @@ -1,16 +1,17 @@ -package com.mogo.och.common.module.manager.audiofocus +package com.mogo.och.biz.media import android.content.Context import android.media.AudioManager import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.common.module.manager.EnvManager -import com.mogo.och.common.module.manager.audition.AuditionManager -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.biz.media.audition.AuditionManager +import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import com.shuyu.gsyvideoplayer.GSYVideoManager -object AudioFocusManager : AuditionManager.MusicDataChangeListener { +object AudioFocusManager : MusicDataChangeListener { const val TAG = "AudioFocusManager" @@ -23,14 +24,14 @@ object AudioFocusManager : AuditionManager.MusicDataChangeListener { private var musicVolumeInTTS = 0 init { - AuditionManager.addDataChangeListener(TAG,this) + AuditionManager.addMusicListener(TAG,this) mAudioManager = AbsMogoApplication.getApp().getSystemService(Context.AUDIO_SERVICE) as AudioManager mMaxVolume = mAudioManager?.getStreamMaxVolume(AudioManager.STREAM_MUSIC)?:0 - musicVolumeInTTS = (mMaxVolume*0.1f).toInt() + musicVolumeInTTS = (mMaxVolume *0.1f).toInt() } override fun updateState(oldData: MusicData?, musicData: MusicData) { - val temp = musicData.state==PlayState.Playing + val temp = musicData.state== PlayState.Playing if(temp!= isPlayingMusic){ isPlayingMusic = temp } @@ -38,7 +39,7 @@ object AudioFocusManager : AuditionManager.MusicDataChangeListener { // 播放音乐需要把视频暂停掉 GSYVideoManager.onPause() } - CallerLogger.d(TAG,"music updateState ${isPlayingTTS}--${isPlayingMusic}---${isPlayingVideo}") + CallerLogger.d(TAG,"music updateState $isPlayingTTS--$isPlayingMusic---$isPlayingVideo") } fun setTTSFocusChange(isSpeaking:Boolean){ @@ -57,11 +58,11 @@ object AudioFocusManager : AuditionManager.MusicDataChangeListener { } } } - CallerLogger.d(TAG, "setTTSFocusChange ${isPlayingTTS}--${isPlayingMusic}---${isPlayingVideo}") + CallerLogger.d(TAG, "setTTSFocusChange $isPlayingTTS--$isPlayingMusic---$isPlayingVideo") } fun setVideoFocusChange(isPlaying:Boolean){ - CallerLogger.d(TAG, "setMusicFocusChange ${isPlayingTTS}--${isPlayingMusic}---${isPlayingVideo}") + CallerLogger.d(TAG, "setMusicFocusChange $isPlayingTTS--$isPlayingMusic---$isPlayingVideo") if(isPlaying!= isPlayingVideo) { isPlayingVideo = isPlaying if(isPlaying){ diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaProvider.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaProvider.kt new file mode 100644 index 0000000000..22ca97dd8f --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaProvider.kt @@ -0,0 +1,115 @@ +package com.mogo.och.biz.media + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.function.call.base.CallerBase +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import com.mogo.och.biz.media.audition.AuditionManager +import com.mogo.och.common.module.biz.media.IMediaListener +import com.mogo.och.common.module.biz.media.MediaService +import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.wigets.media.MediaItem + + +/** + * eye 桥 + */ +@Route(path = OchCommonConst.BIZ_Media) +class MediaProvider : MediaService, CallerBase() { + + private var context: Context? = null + + private val tag = M_OCHCOMMON + "MediaProvider" + + override fun init(context: Context?) { + this.context = context + } + + override fun addMediaListener(tag: String, listener: IMediaListener) { + addListener(tag, listener) + } + + override fun removeBridgeListener(tag: String) { + removeListener(tag) + } + + override fun postSiteIntroduceInfo(list: MutableList) { + M_LISTENERS.forEach { + it.value.diapatchMedia(list) + } + } + + override fun setMediaResume() { + M_LISTENERS.forEach { + it.value.setMediaResume() + } + } + + override fun setMediaPause() { + M_LISTENERS.forEach { + it.value.setMediaPause() + } + } + + override fun setTTSFocusChange(speaking: Boolean) { + AudioFocusManager.setTTSFocusChange(speaking) + } + + override fun setVideoFocusChange(playing: Boolean) { + AudioFocusManager.setVideoFocusChange(playing) + } + + + + override fun musicStop() { + AuditionManager.stop() + } + + override fun musicReplayOrplayFirst() { + AuditionManager.replayOrplayFirst() + } + + override fun removeAuditionListener(tag: String) { + AuditionManager.removeMusicListener(tag) + } + + override fun addAuditionListener(tag: String, listener: MusicDataChangeListener) { + AuditionManager.addMusicListener(tag,listener) + } + + override fun auditionIsPlaying(): Boolean { + return AuditionManager.isPlaying() + } + + override fun getPlaying(): MusicData? { + return AuditionManager.musicDataPlaying + } + + override fun palyAudition(musicData: MusicData) { + AuditionManager.play(musicData) + } + + override fun getPreAuditionData(it: MusicData): MusicData { + return AuditionManager.getPreMusicData(it) + } + + override fun getNextAuditionData(it: MusicData): MusicData { + return AuditionManager.getNextMusicData(it) + } + + override fun toggle(musicData: MusicData) { + AuditionManager.toggle(musicData) + } + + override fun seekTo(progress: Int) { + AuditionManager.seekTo(progress) + } + + override fun getAuditionDataList(): MutableList { + return AuditionManager.musicList + } + + +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaServiceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaServiceManager.kt new file mode 100644 index 0000000000..4f6134daf7 --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaServiceManager.kt @@ -0,0 +1,18 @@ +package com.mogo.och.biz.media + +import android.annotation.SuppressLint +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import com.mogo.och.common.module.constant.OchCommonConst + +object MediaServiceManager { + + private const val TAG = M_OCHCOMMON+"MediaServiceManager" + + @SuppressLint("StaticFieldLeak") + private var mediaService: MediaProvider? = + ARouter.getInstance().build(OchCommonConst.BIZ_Media).navigation() as MediaProvider + + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/Audition.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/Audition.kt similarity index 98% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/Audition.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/Audition.kt index f85f6a061f..07e87bf810 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/Audition.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/Audition.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.audition +package com.mogo.och.biz.media.audition import android.media.AudioManager import android.media.MediaPlayer @@ -24,7 +24,7 @@ object Audition: MediaPlayer.OnPreparedListener, } fun registerOnAuditionListener(listener: OnAuditionListener?) { - this.listener = listener + Audition.listener = listener } fun unregisterOnAuditionListener() { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionCacheManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionCacheManager.kt similarity index 97% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionCacheManager.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionCacheManager.kt index 0901b578d0..57fd3235f1 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionCacheManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionCacheManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.audition +package com.mogo.och.biz.media.audition import android.media.MediaExtractor import android.media.MediaFormat @@ -11,6 +11,7 @@ import com.mogo.eagle.core.utilcode.download.callback.IDownloadListener import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager.EVENT_KEY_INFE_WITH_MUSIC import com.mogo.och.common.module.utils.FileUtils @@ -25,7 +26,7 @@ import com.mogo.eagle.core.utilcode.util.FileUtils as FileHelper object AuditionCacheManager { - private var dataChangeListener:DataChangeListener?=null + private var dataChangeListener: DataChangeListener?=null private val context = AbsMogoApplication.getApp() private const val TAG = "AuditionCacheManager" @@ -175,7 +176,7 @@ object AuditionCacheManager { } fun addDataChangeListener(dataChangeListener: DataChangeListener) { - this.dataChangeListener = dataChangeListener + AuditionCacheManager.dataChangeListener = dataChangeListener getMusicDataByLocationConfig() } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionManager.kt similarity index 81% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionManager.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionManager.kt index c3feae4c51..1fa7e34389 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/AuditionManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionManager.kt @@ -1,8 +1,10 @@ -package com.mogo.och.common.module.manager.audition +package com.mogo.och.biz.media.audition import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager +import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import java.util.concurrent.ConcurrentHashMap object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAuditionListener { @@ -18,22 +20,22 @@ object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAudi init { AuditionCacheManager.addDataChangeListener(this) Audition.registerOnAuditionListener(this) - AudioFocusManager.load() } - fun addDataChangeListener(tag: String, listener: MusicDataChangeListener) { + fun addMusicListener(tag: String, listener: MusicDataChangeListener) { if (dataChangeListeners.containsKey(tag)) { return } dataChangeListeners[tag] = listener + listener.onDataDis(musicList) } - fun removeDataChangeListener(tag: String){ + fun removeMusicListener(tag: String){ dataChangeListeners.remove(tag) } - private fun getMusicDataByState(state:PlayState):Pair?{ + private fun getMusicDataByState(state: PlayState):Pair?{ musicList.forEachIndexed { index, musicData -> if(musicData.state==state){ return Pair(index,musicData) @@ -103,10 +105,23 @@ object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAudi } } - private fun resetData():MusicData?{ - var tempRusult:MusicData?=null + //如果音乐属于暂停状态 开始播放 如果没有播放就播放第一首 + fun replayOrplayFirst(){ + musicList.forEach {music-> + if(music.state==PlayState.Pause){ + toggle(music) + return + } + } + if(!isPlaying()) { + playFirst() + } + } + + private fun resetData(): MusicData?{ + var tempRusult: MusicData?=null musicList.forEach { - if(it.state!=PlayState.None){ + if(it.state!= PlayState.None){ tempRusult = it } it.state = PlayState.None @@ -127,20 +142,6 @@ object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAudi } } - public interface MusicDataChangeListener{ - fun addOneData(it: MusicData){} - - /** - * toggle 修改播放器状态 - * @param oldData 上一个不是 PlayState.None 的歌曲 - * @param musicData 当前播放状态发生变化的歌曲 - */ - fun updateState(oldData: MusicData?,musicData: MusicData) - fun updatePlayCurrent(currentPlay: Long, duration: Long, second: MusicData){} - fun onMusicCompletion(musicData: MusicData) {} - - } - /** * 音乐播放完毕 */ @@ -152,7 +153,7 @@ object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAudi it.value.onMusicCompletion(oldData) } }else{ - musicList.forEach {musicData-> + musicList.forEach { musicData-> if(musicData.path==path){ dataChangeListeners.forEach { it.value.onMusicCompletion(musicData) @@ -183,7 +184,7 @@ object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAudi } }else{ musicList.forEachIndexed { index, musicData -> - if(musicData.path==Audition.oldPath){ + if(musicData.path== Audition.oldPath){ dataChangeListeners.forEach { it.value.updatePlayCurrent(currentPlay,duration,musicData) } @@ -193,7 +194,7 @@ object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAudi } } - fun getNextMusicData(it: MusicData):MusicData { + fun getNextMusicData(it: MusicData): MusicData { val indexOf = musicList.indexOf(it) if(indexOf== musicList.size-1){ return musicList.first() @@ -216,7 +217,7 @@ object AuditionManager: AuditionCacheManager.DataChangeListener, Audition.OnAudi } fun setVolume(leftVolume:Float, rightVolume:Float){ - Audition.setVolume(leftVolume,rightVolume) + Audition.setVolume(leftVolume, rightVolume) } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IMediaDispatch.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IMediaDispatch.kt deleted file mode 100644 index 3fa8583546..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IMediaDispatch.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.mogo.och.common.module.biz.media - -import com.mogo.och.common.module.wigets.media.MediaItem - -interface IMediaDispatch { - fun diapatchMedia(list :MutableList) - fun setMediaPause(){} - fun setMediaResume(){} -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IMediaListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IMediaListener.kt new file mode 100644 index 0000000000..b29848ca0b --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IMediaListener.kt @@ -0,0 +1,28 @@ +package com.mogo.och.common.module.biz.media + +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.wigets.media.MediaItem + +interface IMediaListener { + fun diapatchMedia(list :MutableList) + + fun setMediaPause(){} + + fun setMediaResume(){} + +} + +interface MusicDataChangeListener{ + fun addOneData(it: MusicData){} + + /** + * toggle 修改播放器状态 + * @param oldData 上一个不是 PlayState.None 的歌曲 + * @param musicData 当前播放状态发生变化的歌曲 + */ + fun updateState(oldData: MusicData?, musicData: MusicData) + fun updatePlayCurrent(currentPlay: Long, duration: Long, second: MusicData){} + fun onMusicCompletion(musicData: MusicData) {} + fun onDataDis(musicList: MutableList){} + +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaManager.kt index 2e8bdfd3b3..adbaa3efee 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaManager.kt @@ -1,29 +1,92 @@ package com.mogo.och.common.module.biz.media -import com.mogo.och.common.module.utils.CallerBase +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.wigets.media.MediaItem -object MediaManager : CallerBase() { +object MediaManager { + + private var mediaService: MediaService? = + ARouter.getInstance().build(OchCommonConst.BIZ_Media).navigation() as MediaService + + fun addListener(tag:String, listener: IMediaListener){ + mediaService?.addMediaListener(tag,listener) + } + + fun removeListener(tag: String){ + mediaService?.removeBridgeListener(tag) + } fun postSiteIntroduceInfo(list: MutableList){ - M_LISTENERS.forEach { - val listener = it.value - listener.diapatchMedia(list) - } + mediaService?.postSiteIntroduceInfo(list) } fun setMediaResume(){ - M_LISTENERS.forEach { - val listener = it.value - listener.setMediaResume() - } + mediaService?.setMediaResume() } fun setMediaPause(){ - M_LISTENERS.forEach { - val listener = it.value - listener.setMediaPause() + mediaService?.setMediaPause() + } + + fun setTTSFocusChange(isSpeaking:Boolean){ + mediaService?.setTTSFocusChange(isSpeaking) + } + + fun setVideoFocusChange(isPlaying:Boolean){ + mediaService?.setVideoFocusChange(isPlaying) + } + + object Audition{ + + fun stop() { + mediaService?.musicStop() } + fun replayOrplayFirst(){ + mediaService?.musicReplayOrplayFirst() + } + + fun removeListener(tag: String) { + mediaService?.removeAuditionListener(tag) + } + + fun addListener(tag: String, listener: MusicDataChangeListener) { + mediaService?.addAuditionListener(tag,listener) + } + + fun isPlaying():Boolean?{ + return mediaService?.auditionIsPlaying() + } + + fun getPlaying(): MusicData? { + return mediaService?.getPlaying() + } + + fun play(musicData: MusicData) { + mediaService?.palyAudition(musicData) + } + + fun getPreAuditionData(it: MusicData): MusicData? { + return mediaService?.getPreAuditionData(it) + } + + fun getNextAuditionData(it: MusicData): MusicData? { + return mediaService?.getNextAuditionData(it) + } + + fun getAuditionDataList(): MutableList? { + return mediaService?.getAuditionDataList() + } + + fun toggle(musicData: MusicData) { + mediaService?.toggle(musicData) + } + + fun seekTo(progress: Int) { + mediaService?.seekTo(progress) + } + } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaService.kt new file mode 100644 index 0000000000..23cdfcaa16 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaService.kt @@ -0,0 +1,47 @@ +package com.mogo.och.common.module.biz.media + +import com.alibaba.android.arouter.facade.template.IProvider +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.wigets.media.MediaItem + +interface MediaService : IProvider { + + fun addMediaListener(tag: String, listener: IMediaListener) + + fun removeBridgeListener(tag: String) + + fun postSiteIntroduceInfo(list: MutableList) + + fun setMediaResume() + + fun setMediaPause() + + fun setTTSFocusChange(speaking: Boolean) + + fun setVideoFocusChange(playing: Boolean) + + fun musicStop() + + fun musicReplayOrplayFirst() + + fun removeAuditionListener(tag: String) + + fun addAuditionListener(tag: String, listener: MusicDataChangeListener) + + fun auditionIsPlaying(): Boolean + + fun getPlaying(): MusicData? + + fun palyAudition(musicData: MusicData) + + fun getPreAuditionData(it: MusicData): MusicData + + fun getNextAuditionData(it: MusicData): MusicData + + fun toggle(musicData: MusicData) + + fun seekTo(progress: Int) + + fun getAuditionDataList(): MutableList + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/MusicData.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/data/MusicData.kt similarity index 94% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/MusicData.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/data/MusicData.kt index d0a23cf1be..ef29710c9b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/audition/MusicData.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/data/MusicData.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.audition +package com.mogo.och.common.module.biz.media.data /** * 音乐文件 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt index 5c27e231f9..c8a181abe4 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt @@ -37,6 +37,8 @@ class OchCommonConst { const val BIZ_SKIN = "/ochbiz/common/skin" const val BIZ_SCANNER = "/ochbiz/common/scanner" const val BIZ_TIME = "/ochbiz/common/time" + const val BIZ_Media = "/ochbiz/common/media" + const val BIZ_OFFLINE = "/offlinedriver/offlinedata" const val BIZ_Bridge = "/birdge/bridge" diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceNotice.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceNotice.kt index 375c4fb54a..5a5cb0a8e0 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceNotice.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceNotice.kt @@ -5,7 +5,7 @@ import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager +import com.mogo.och.common.module.biz.media.MediaManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.socket.lan.LanSocketManager import com.mogo.och.common.module.manager.socket.lan.bean.OutofVoice @@ -112,21 +112,21 @@ object VoiceNotice { override fun onSpeakStart(speakText: String?) { super.onSpeakStart(speakText) callBack?.onSpeakStart(speakText) - AudioFocusManager.setTTSFocusChange(true) + MediaManager.setTTSFocusChange(true) save2Log("开始播放${speakText}") } override fun onSpeakEnd(speakText: String?) { super.onSpeakEnd(speakText) callBack?.onSpeakEnd(speakText) - AudioFocusManager.setTTSFocusChange(false) + MediaManager.setTTSFocusChange(false) save2Log("结束播放${speakText}") } override fun onSpeakError(speakText: String?, errorMsg: String?) { super.onSpeakError(speakText, errorMsg) callBack?.onSpeakError(speakText,errorMsg) - AudioFocusManager.setTTSFocusChange(false) + MediaManager.setTTSFocusChange(false) save2Log("播放错误,内容:${speakText}、errorMsg:${errorMsg}") } } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt index c299ccc516..137e80f445 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt @@ -5,7 +5,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.Vehicle import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.data.MusicData object MediaBeanManager { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt index 1f873ab568..79137e9d84 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt @@ -9,7 +9,7 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.R -import com.mogo.och.common.module.biz.media.IMediaDispatch +import com.mogo.och.common.module.biz.media.IMediaListener import com.mogo.och.common.module.biz.media.MediaManager import com.mogo.och.common.module.manager.download.DownloadManager import com.mogo.och.common.module.manager.loop.BizLoopManager @@ -24,7 +24,7 @@ import kotlinx.android.synthetic.main.fragment_video_player.imageVideoRotationVi * @date: 2022/4/12 */ class MediaPlayerFragment : - MvpFragment(), IMediaDispatch { + MvpFragment(), IMediaListener { companion object { private val TAG = MediaPlayerFragment::class.java.simpleName diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/bar/RightBarView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/bar/RightBarView.kt index 10aece16a5..5e7fc926c6 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/bar/RightBarView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/bar/RightBarView.kt @@ -15,12 +15,12 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.SimpleTarget import com.bumptech.glide.request.transition.Transition -import com.elegant.utils.UiThreadHandler import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.audition.AuditionManager -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.common.module.biz.media.MediaManager +import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.unmanned.passenger.ui.music.playing.MusicPlayingViewModel import com.mogo.och.unmanned.taxi.passenger.R @@ -34,7 +34,7 @@ import kotlinx.android.synthetic.main.taxi_p_rightbar.view.con_third_group import me.jessyan.autosize.utils.AutoSizeUtils -class RightBarView : ConstraintLayout, AuditionManager.MusicDataChangeListener { +class RightBarView : ConstraintLayout, MusicDataChangeListener { private val TAG = "RightBarView" @@ -88,8 +88,8 @@ class RightBarView : ConstraintLayout, AuditionManager.MusicDataChangeListener { ck_music.setBackgroundResource(R.drawable.taxi_p_music_selector) endAnimal() } else { - if(AuditionManager.isPlaying()){ - AuditionManager.musicDataPlaying?.let { + if(MediaManager.Audition.isPlaying()==true){ + MediaManager.Audition.getPlaying()?.let { Glide.with(context) .load(it.coverHeadImageUrl) .apply(RequestOptions().placeholder(R.drawable.taxt_p_music_bg_relax_head)) @@ -151,7 +151,7 @@ class RightBarView : ConstraintLayout, AuditionManager.MusicDataChangeListener { override fun onAttachedToWindow() { super.onAttachedToWindow() CallerLogger.d(TAG, "onAttachedToWindow") - AuditionManager.addDataChangeListener(TAG,this) + MediaManager.Audition.addListener(TAG,this) // RightBarView启动的时候必须把MusicPlayingViewModel初始化了,否则和AuditionManager的回掉及逻辑会有问题 try { val musicPlayingViewModel = findViewTreeViewModelStoreOwner()?.let { @@ -165,7 +165,7 @@ class RightBarView : ConstraintLayout, AuditionManager.MusicDataChangeListener { } override fun onDetachedFromWindow() { - AuditionManager.removeDataChangeListener(TAG) + MediaManager.Audition.removeListener(TAG) super.onDetachedFromWindow() } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/MusicModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/MusicModel.kt index 653f695aca..4932cc82bc 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/MusicModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/MusicModel.kt @@ -3,10 +3,11 @@ package com.mogo.och.unmanned.passenger.ui.music import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.audition.AuditionManager import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.MediaManager +import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.CallerBase import com.mogo.och.common.module.utils.RxUtils @@ -16,7 +17,8 @@ import io.reactivex.disposables.Disposable import com.mogo.och.unmanned.taxi.utils.order.OrderListener import com.mogo.och.unmanned.taxi.utils.order.OrderModel -object MusicModel : CallerBase(), OrderListener, IOchAutopilotStatusListener, AuditionManager.MusicDataChangeListener { +object MusicModel : CallerBase(), OrderListener, IOchAutopilotStatusListener, + MusicDataChangeListener { private const val TAG = "MusicModel" @@ -24,12 +26,19 @@ object MusicModel : CallerBase(), OrderListener, I OrderModel.setOrderStatusCallback(TAG,this) //自动驾驶状态监听 OchAutoPilotStatusListenerManager.addListener(TAG, this) - AuditionManager.addDataChangeListener(TAG,this) + MediaManager.Audition.addListener(TAG,this) } private var stopMusicDisposable: Disposable? = null private var orderInfo: BaseOrderBean? = null + override fun addOneData(musicData: MusicData) { + M_LISTENERS.forEach{ + it.value.addOneData(musicData) + } + } + + private const val startMusicWithOrderKey = "STARTMUSICWITHORDER" override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { @@ -51,13 +60,13 @@ object MusicModel : CallerBase(), OrderListener, I TaxiOrderStatusEnum.JourneyCompleted -> { cancelStopMusicDisposable() stopMusicDisposable = RxUtils.createSubscribe(60_000) { - AuditionManager.stop() + MediaManager.Audition.stop() } } TaxiOrderStatusEnum.Cancel -> { cancelStopMusicDisposable() stopMusicDisposable = RxUtils.createSubscribe(60_000) { - AuditionManager.stop() + MediaManager.Audition.stop() } } } @@ -71,7 +80,12 @@ object MusicModel : CallerBase(), OrderListener, I cancelStopMusicDisposable() SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo) BizLoopManager.runInMainThread{ - checkMusic(AuditionManager.musicList.first(),true) + MediaManager.Audition.getAuditionDataList()?.let {list-> + if(list.isNotEmpty()) { + checkMusic(list.first(), true) + } + } + } } } else { @@ -80,7 +94,11 @@ object MusicModel : CallerBase(), OrderListener, I cancelStopMusicDisposable() SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo) BizLoopManager.runInMainThread { - checkMusic(AuditionManager.musicList.first(), true) + MediaManager.Audition.getAuditionDataList()?.let { list -> + if(list.isNotEmpty()) { + checkMusic(list.first(), true) + } + } } } } @@ -90,7 +108,7 @@ object MusicModel : CallerBase(), OrderListener, I private fun cancelStopMusicDisposable() { if (stopMusicDisposable != null) { - AuditionManager.stop() + MediaManager.Audition.stop() } RxUtils.disposeSubscribe(stopMusicDisposable) stopMusicDisposable = null @@ -102,7 +120,7 @@ object MusicModel : CallerBase(), OrderListener, I fun getCheckMusic(): MusicData? { - AuditionManager.musicList.forEach { + MediaManager.Audition.getAuditionDataList()?.forEach { if (it.select==true) { return it } @@ -111,13 +129,7 @@ object MusicModel : CallerBase(), OrderListener, I } fun seekTo(progress: Int) { - AuditionManager.seekTo(progress) - } - - override fun addOneData(musicData: MusicData) { - M_LISTENERS.forEach{ - it.value.addOneData(musicData) - } + MediaManager.Audition.seekTo(progress) } /** @@ -125,7 +137,7 @@ object MusicModel : CallerBase(), OrderListener, I * 2、如果正在播放 需要开始播放选中音乐 */ fun checkMusic(musicData: MusicData,startPlay:Boolean = true){ - AuditionManager.musicList.forEach { + MediaManager.Audition.getAuditionDataList()?.forEach { // 上一个选中歌曲 if (it.select==true) { if(it!=musicData){ @@ -142,7 +154,7 @@ object MusicModel : CallerBase(), OrderListener, I } notifySelectChange(musicData) if(startPlay) { - AuditionManager.play(musicData) + MediaManager.Audition.play(musicData) } } @@ -155,23 +167,25 @@ object MusicModel : CallerBase(), OrderListener, I fun clickPreMusic(){ val checkMusic = getCheckMusic() checkMusic?.let { - val preMusicData = AuditionManager.getPreMusicData(it) - checkMusic(preMusicData) + MediaManager.Audition.getPreAuditionData(it)?.let { preData-> + checkMusic(preData) + } } } fun clickNextMusic(){ val checkMusic = getCheckMusic() checkMusic?.let { - val nextMusicData = AuditionManager.getNextMusicData(it) - checkMusic(nextMusicData) + MediaManager.Audition.getNextAuditionData(it)?.let { nextData-> + checkMusic(nextData) + } } } fun toggleMusic(){ val checkMusic = getCheckMusic() checkMusic?.let { - AuditionManager.toggle(it) + MediaManager.Audition.toggle(it) } } @@ -205,7 +219,7 @@ object MusicModel : CallerBase(), OrderListener, I // return false // } // return true - return AuditionManager.isPlaying() + return MediaManager.Audition.isPlaying()==true } interface MusicDataListener{ diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/MusicView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/MusicView.kt index a2338a6660..60667f7173 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/MusicView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/MusicView.kt @@ -3,15 +3,10 @@ package com.mogo.och.unmanned.passenger.ui.music import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater -import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.unmanned.passenger.ui.music.list.MusicListView import com.mogo.och.unmanned.taxi.passenger.R -import kotlinx.android.synthetic.main.taxi_p_music.view.mlv_list -import kotlinx.android.synthetic.main.taxi_p_music.view.mpv_playing class MusicView : ConstraintLayout, MusicViewModel.IMusicViewCallback { diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/bar/MusicBarView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/bar/MusicBarView.kt index a2ec92ff80..e882c0898b 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/bar/MusicBarView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/bar/MusicBarView.kt @@ -13,8 +13,8 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import com.mogo.och.unmanned.taxi.passenger.R import kotlinx.android.synthetic.main.taxi_p_music_bar.view.aciv_music_next_bar import kotlinx.android.synthetic.main.taxi_p_music_bar.view.aciv_music_toggle_bar diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/bar/MusicBarViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/bar/MusicBarViewModel.kt index 8fee84cb9a..b609c8c489 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/bar/MusicBarViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/bar/MusicBarViewModel.kt @@ -1,7 +1,7 @@ package com.mogo.och.unmanned.passenger.ui.music.bar import androidx.lifecycle.ViewModel -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.unmanned.passenger.ui.music.MusicModel diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListItemAdapter.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListItemAdapter.kt index 899c28293a..eb6eccbbac 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListItemAdapter.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListItemAdapter.kt @@ -10,8 +10,8 @@ import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import com.mogo.och.unmanned.taxi.passenger.R /** @@ -74,7 +74,7 @@ class MusicListItemAdapter( holder.itemView.background = null } - if (musicData.state==PlayState.Playing) { + if (musicData.state== PlayState.Playing) { holder.musicPlayState.visibility = View.VISIBLE }else{ holder.musicPlayState.visibility = View.GONE diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListView.kt index 9db7ad9b86..9ebfdf24c5 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListView.kt @@ -8,7 +8,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import androidx.recyclerview.widget.LinearLayoutManager -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.unmanned.passenger.ui.music.MusicModel import com.mogo.och.unmanned.taxi.passenger.R import kotlinx.android.synthetic.main.taxi_p_music_list.view.rv_music_list diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListViewModel.kt index 4368af86d0..e760170a3b 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/list/MusicListViewModel.kt @@ -2,9 +2,8 @@ package com.mogo.och.unmanned.passenger.ui.music.list import androidx.lifecycle.ViewModel import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.manager.audition.AuditionManager -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.MediaManager +import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.unmanned.passenger.ui.music.MusicModel @@ -14,11 +13,13 @@ class MusicListViewModel : ViewModel(), MusicModel.MusicDataListener { private var viewCallback: IMusicListViewCaLillback? = null - fun setDistanceCallback(viewCallback: IMusicListViewCaLillback) { this.viewCallback = viewCallback - viewCallback.addAllData(AuditionManager.musicList) - CallerLogger.d(TAG, "初始化音乐${AuditionManager.musicList.size}") + MediaManager.Audition.getAuditionDataList()?.let { + viewCallback.addAllData(it) + CallerLogger.d(TAG, "初始化音乐${it.size}") + } + MusicModel.addListener(TAG, this) } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/playing/MusicPlayingView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/playing/MusicPlayingView.kt index 1a74a621e3..b56208d015 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/playing/MusicPlayingView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/playing/MusicPlayingView.kt @@ -13,9 +13,8 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.TimeTransformUtils -import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager -import com.mogo.och.common.module.manager.audition.MusicData -import com.mogo.och.common.module.manager.audition.PlayState +import com.mogo.och.common.module.biz.media.data.MusicData +import com.mogo.och.common.module.biz.media.data.PlayState import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.unmanned.taxi.passenger.R import kotlinx.android.synthetic.main.taxi_p_music_playing.view.iv_music_cover @@ -112,7 +111,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi tv_tag.text = musicData.tag.first() tv_playing_time.text = DateTimeUtil.second2Time(0) tv_playing_during.text = TimeTransformUtils.stringForTime(musicData.duration.toInt()) - if(musicData.state==PlayState.Playing){ + if(musicData.state== PlayState.Playing){ iv_toggle.setImageResource(R.drawable.taxi_p_music_pause) startAnimal() }else{ @@ -181,7 +180,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi } override fun setPlayOrpause(it: MusicData) { - if(it.state==PlayState.Playing){ + if(it.state== PlayState.Playing){ iv_toggle.setImageResource(R.drawable.taxi_p_music_pause) startAnimal() }else{ diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/playing/MusicPlayingViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/playing/MusicPlayingViewModel.kt index fb242a7d00..fc4c3f964e 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/playing/MusicPlayingViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/music/playing/MusicPlayingViewModel.kt @@ -2,7 +2,7 @@ package com.mogo.och.unmanned.passenger.ui.music.playing import androidx.lifecycle.ViewModel import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.audition.MusicData +import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.unmanned.passenger.ui.music.MusicModel diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt index c30791465c..54cb99103b 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt @@ -16,7 +16,7 @@ import com.mogo.eagle.core.function.main.MainMoGoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager +import com.mogo.och.common.module.biz.media.MediaManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager import com.mogo.och.common.module.wigets.media.IMediaDataSourceListener @@ -165,12 +165,12 @@ internal class InfoVideoView @JvmOverloads constructor( GSYVideoView.CURRENT_STATE_PLAYING ->{ currentMedia?.isPlayiing = true infoVideoPlaylist.adapter?.notifyItemChanged(currentMediaIndex) - AudioFocusManager.setVideoFocusChange(true) + MediaManager.setVideoFocusChange(true) } else ->{ currentMedia?.isPlayiing = false infoVideoPlaylist.adapter?.notifyItemChanged(currentMediaIndex) - AudioFocusManager.setVideoFocusChange(false) + MediaManager.setVideoFocusChange(false) } } } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/ConsultVideoPlayer.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/ConsultVideoPlayer.kt index 2d6af4d7fe..cad03e327f 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/ConsultVideoPlayer.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/ConsultVideoPlayer.kt @@ -26,7 +26,7 @@ import com.mogo.eagle.core.utilcode.util.TAG import com.mogo.eagle.core.utilcode.util.TimeTransformUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider -import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager +import com.mogo.och.common.module.biz.media.MediaManager import com.mogo.och.common.module.wigets.media.MediaItem import com.mogo.och.unmanned.passenger.bean.TaxiPassengerVideoPlay import com.mogo.och.unmanned.passenger.ui.statusview.StatusBarView @@ -154,12 +154,12 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { GSYVideoView.CURRENT_STATE_PLAYING ->{ start.setImageResource(R.drawable.notice_video_pause) showOrHideStartPlayButton(false) - AudioFocusManager.setVideoFocusChange(true) + MediaManager.setVideoFocusChange(true) } else -> { start.setImageResource(R.drawable.notice_video_after_pause) showOrHideStartPlayButton(true) - AudioFocusManager.setVideoFocusChange(false) + MediaManager.setVideoFocusChange(false) } } } @@ -314,7 +314,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { override fun onCompletion() { start.setImageResource(R.drawable.notice_video_after_pause) - AudioFocusManager.setVideoFocusChange(false) + MediaManager.setVideoFocusChange(false) } override fun onSurfaceUpdated(surface: Surface) { @@ -335,7 +335,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { override fun onError(what: Int, extra: Int) { super.onError(what, extra) - AudioFocusManager.setVideoFocusChange(false) + MediaManager.setVideoFocusChange(false) mThumbImageViewLayout?.visibility = View.VISIBLE ToastUtils.showLong("哎呀,出错了,看看其他视频吧") currentTime = -1