[6.3.0]
[包车音乐 部分问题]
This commit is contained in:
@@ -5,6 +5,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.utilcode.util.TAG
|
||||
import com.mogo.och.common.module.manager.auditionmanager.AuditionManager
|
||||
import com.mogo.och.common.module.manager.auditionmanager.PlayState
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import io.reactivex.disposables.Disposable
|
||||
|
||||
@@ -27,6 +28,12 @@ object MusicModel : IMoGoAutopilotStatusListener, IOrderStatusChangeListener {
|
||||
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()
|
||||
}
|
||||
@@ -36,6 +43,12 @@ object MusicModel : IMoGoAutopilotStatusListener, IOrderStatusChangeListener {
|
||||
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()
|
||||
}
|
||||
|
||||
@@ -114,6 +114,19 @@ class MusicListItemAdapter(
|
||||
}
|
||||
}
|
||||
|
||||
fun setSelect(nextMusicData: MusicData, preMusicData: MusicData?) {
|
||||
dataList.forEachIndexed { index, musicDataIn ->
|
||||
if(musicDataIn.id==nextMusicData.id){
|
||||
musicDataIn.select = true
|
||||
notifyItemChanged(index,0)
|
||||
}
|
||||
if(musicDataIn.id == preMusicData?.id){
|
||||
musicDataIn.select = false
|
||||
notifyItemChanged(index,0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inner class TextVH(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
var musicName: TextView
|
||||
var tvTag: TextView
|
||||
|
||||
@@ -42,6 +42,7 @@ class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillb
|
||||
val viewModel = findViewTreeViewModelStoreOwner()?.let {
|
||||
ViewModelProvider(it).get(MusicListViewModel::class.java)
|
||||
}
|
||||
CallerLogger.d(TAG,viewModel.toString())
|
||||
|
||||
viewModel?.setDistanceCallback(this)
|
||||
}
|
||||
@@ -68,6 +69,10 @@ class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillb
|
||||
CallerLogger.d(TAG,"${Thread.currentThread().name}----更新数据${oldData}-----${musicData}")
|
||||
}
|
||||
|
||||
override fun upDateSelectMusic(nextMusicData: MusicData, preMusicData: MusicData?) {
|
||||
lineAdapter.setSelect(nextMusicData,preMusicData)
|
||||
}
|
||||
|
||||
override fun clickItem(musicData: MusicData,position: Int) {
|
||||
// 通知主页面去显示详情
|
||||
this.checkListener?.checkItem(musicData)
|
||||
|
||||
@@ -33,6 +33,7 @@ class MusicListViewModel : ViewModel(),
|
||||
fun addAllData(data:MutableList<MusicData>)
|
||||
fun addOneData(it: MusicData)
|
||||
fun updateMusicData(oldData: MusicData?,musicData: MusicData)
|
||||
fun upDateSelectMusic(nextMusicData: MusicData, preMusicData: MusicData?)
|
||||
}
|
||||
|
||||
override fun addOneData(it: MusicData) {
|
||||
@@ -54,4 +55,10 @@ class MusicListViewModel : ViewModel(),
|
||||
viewCallback?.updateMusicData(musicData, musicData)
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
|
||||
fun selectMusic(currentMusicData: MusicData, preMusicData: MusicData?) {
|
||||
UiThreadHandler.post({
|
||||
viewCallback?.upDateSelectMusic(currentMusicData,preMusicData)
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
@@ -13,9 +13,11 @@ import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
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.auditionmanager.MusicData
|
||||
import com.mogo.och.common.module.manager.auditionmanager.PlayState
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
@@ -44,6 +46,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi
|
||||
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
|
||||
|
||||
private var viewModel: MusicPlayingViewModel?=null
|
||||
private var viewListModel: MusicListViewModel?=null
|
||||
|
||||
private var animator:ObjectAnimator?=null
|
||||
|
||||
@@ -52,7 +55,9 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi
|
||||
private fun initView() {
|
||||
LayoutInflater.from(context).inflate(R.layout.charter_p_music_playing, this, true)
|
||||
|
||||
|
||||
setOnClickListener {
|
||||
CallerLogger.d(TAG,"-----------")
|
||||
}
|
||||
iv_toggle.setOnClickListener {
|
||||
viewModel?.toggle()
|
||||
}
|
||||
@@ -62,6 +67,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi
|
||||
iv_show_next.setOnClickListener {
|
||||
viewModel?.showNextMusic()
|
||||
}
|
||||
sb_musuc_progess.thumb.mutate().alpha = 0
|
||||
sb_musuc_progess.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
|
||||
var seekToProgress = 0
|
||||
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
|
||||
@@ -93,6 +99,10 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi
|
||||
viewModel = findViewTreeViewModelStoreOwner()?.let {
|
||||
ViewModelProvider(it).get(MusicPlayingViewModel::class.java)
|
||||
}
|
||||
viewListModel = findViewTreeViewModelStoreOwner()?.let {
|
||||
ViewModelProvider(it).get(MusicListViewModel::class.java)
|
||||
}
|
||||
CallerLogger.d("MusicListView",viewListModel.toString())
|
||||
|
||||
viewModel?.setDistanceCallback(this)
|
||||
}
|
||||
@@ -183,6 +193,10 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi
|
||||
tv_playing_during.text = TimeTransformUtils.stringForTime(duration.toInt())
|
||||
}
|
||||
|
||||
override fun setSelect(currentMusicData: MusicData,preMusicData: MusicData?) {
|
||||
viewListModel?.selectMusic(currentMusicData,preMusicData)
|
||||
}
|
||||
|
||||
fun listenerPlaying(){
|
||||
|
||||
}
|
||||
|
||||
@@ -56,7 +56,9 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen
|
||||
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)
|
||||
}
|
||||
@@ -67,7 +69,9 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen
|
||||
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)
|
||||
}
|
||||
@@ -78,6 +82,7 @@ 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?)
|
||||
}
|
||||
|
||||
override fun updateState(oldData:MusicData?,musicData: MusicData) {
|
||||
@@ -109,8 +114,12 @@ 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)
|
||||
}
|
||||
showNextMusic()
|
||||
}
|
||||
|
||||
fun seekTo(progress: Int) {
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
@@ -78,7 +78,8 @@
|
||||
android:paddingStart="@dimen/dp_0"
|
||||
android:paddingEnd="@dimen/dp_0"
|
||||
android:id="@+id/sb_musuc_progess"
|
||||
android:thumb="@null"
|
||||
android:thumb="@drawable/charter_p_music_seekbar_thumb"
|
||||
android:duplicateParentState="true"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_author"
|
||||
|
||||
@@ -63,13 +63,19 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen
|
||||
}
|
||||
}
|
||||
|
||||
fun play(){
|
||||
checkMusicData?.let {
|
||||
AuditionManager.play(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun showPreMusic() {
|
||||
checkMusicData?.let {
|
||||
val playing = AuditionManager.isPlaying()
|
||||
val nextMusicData = AuditionManager.getPreMusicData(it)
|
||||
setMusicData(nextMusicData)
|
||||
if(playing){
|
||||
toggle()
|
||||
play()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -80,7 +86,7 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen
|
||||
val nextMusicData = AuditionManager.getNextMusicData(it)
|
||||
setMusicData(nextMusicData)
|
||||
if(playing){
|
||||
toggle()
|
||||
play()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -121,8 +127,9 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen
|
||||
}
|
||||
}
|
||||
}
|
||||
showNextMusic()
|
||||
toggle()
|
||||
val nextMusicData = AuditionManager.getNextMusicData(musicData)
|
||||
setMusicData(nextMusicData)
|
||||
play()
|
||||
}
|
||||
|
||||
fun seekTo(progress: Int) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.os.Build;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.MainThread;
|
||||
|
||||
@@ -19,6 +20,7 @@ import com.mogo.tts.base.MultiLangTtsEntity;
|
||||
import com.mogo.tts.base.PreemptType;
|
||||
import com.mogo.tts.base.zhi.AvatarManager;
|
||||
import com.mogo.tts.base.zhi.IActionCallback;
|
||||
import com.mogo.xiaozhi.sdk.base.BaseManager;
|
||||
import com.mogo.xiaozhi.sdk.engine.DMStatusListener;
|
||||
import com.mogo.xiaozhi.sdk.engine.RecorderDMManager;
|
||||
import com.mogo.xiaozhi.sdk.engine.tts.AILocalTTS;
|
||||
@@ -46,6 +48,8 @@ public class ZhiTTS implements IMogoTTS, OnTtsListener {
|
||||
|
||||
private AtomicBoolean initStatus = new AtomicBoolean(false);
|
||||
|
||||
private IGlobalTtsCallback mGlobalTtsCallback = null;
|
||||
|
||||
public void release() {
|
||||
CallerLogger.d(TAG, "release");
|
||||
}
|
||||
@@ -87,6 +91,18 @@ public class ZhiTTS implements IMogoTTS, OnTtsListener {
|
||||
CallerLogger.d(TAG, "RecorderDMManager---onError---code"+code+"--info"+info);
|
||||
}
|
||||
});
|
||||
ZDTtsManager.getInstance().setCallback(new BaseManager.ActionCallback() {
|
||||
|
||||
@Override
|
||||
public String onActionCallback(String callback, String data) {
|
||||
if ("mos.action.tts.status".equals(callback)) {
|
||||
CallerLogger.d(TAG, "callback:"+callback+"-----data"+data);
|
||||
return "";
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -268,7 +284,7 @@ public class ZhiTTS implements IMogoTTS, OnTtsListener {
|
||||
|
||||
@Override
|
||||
public void registerTtsListener(IGlobalTtsCallback callback) {
|
||||
|
||||
mGlobalTtsCallback = callback;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user