[8.1.2+]
[media] [收束tts]
This commit is contained in:
@@ -5,19 +5,23 @@ 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.biz.media.tts.VoiceIn
|
||||
import com.mogo.och.biz.media.tts.VoiceOut
|
||||
import com.mogo.och.common.module.biz.media.IVideoListener
|
||||
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
|
||||
import com.mogo.tts.base.IMogoTTSCallback
|
||||
import com.mogo.tts.base.LangTtsEntity
|
||||
|
||||
|
||||
/**
|
||||
* eye 桥
|
||||
*/
|
||||
@Route(path = OchCommonConst.BIZ_Media)
|
||||
class MediaProvider : MediaService, CallerBase<IMediaListener>() {
|
||||
class MediaProvider : MediaService, CallerBase<IVideoListener>() {
|
||||
|
||||
private var context: Context? = null
|
||||
|
||||
@@ -27,11 +31,11 @@ class MediaProvider : MediaService, CallerBase<IMediaListener>() {
|
||||
this.context = context
|
||||
}
|
||||
|
||||
override fun addMediaListener(tag: String, listener: IMediaListener) {
|
||||
override fun addVideoListener(tag: String, listener: IVideoListener) {
|
||||
addListener(tag, listener)
|
||||
}
|
||||
|
||||
override fun removeBridgeListener(tag: String) {
|
||||
override fun removeVideoListener(tag: String) {
|
||||
removeListener(tag)
|
||||
}
|
||||
|
||||
@@ -111,5 +115,37 @@ class MediaProvider : MediaService, CallerBase<IMediaListener>() {
|
||||
return AuditionManager.musicList
|
||||
}
|
||||
|
||||
override fun showNotice(
|
||||
notice: String?,
|
||||
level: Int,
|
||||
delayed: Long,
|
||||
callBack: IMogoTTSCallback?
|
||||
) {
|
||||
VoiceIn.showNotice(notice,level,delayed,callBack)
|
||||
}
|
||||
|
||||
override fun showNotice(
|
||||
listTTS: MutableList<LangTtsEntity>,
|
||||
level: Int,
|
||||
callBack: IMogoTTSCallback?
|
||||
) {
|
||||
VoiceIn.showNotice(listTTS,level,callBack)
|
||||
}
|
||||
|
||||
override fun showNoticeOut(notice: String?) {
|
||||
VoiceOut.showNoticeOut(notice)
|
||||
}
|
||||
|
||||
override fun stopTTs() {
|
||||
VoiceIn.stopCurrentTts()
|
||||
}
|
||||
|
||||
override fun loadOuttts() {
|
||||
VoiceOut.load()
|
||||
}
|
||||
|
||||
override fun releaseOuttts() {
|
||||
VoiceOut.release()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.voice
|
||||
package com.mogo.och.biz.media.tts
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
@@ -14,43 +14,11 @@ import com.mogo.tts.base.LangTtsEntity
|
||||
import com.mogo.tts.base.LanguageType
|
||||
import com.mogo.tts.base.MultiLangTtsEntity
|
||||
|
||||
object VoiceNotice {
|
||||
object VoiceIn {
|
||||
|
||||
const val onlyChinese = 1 //中文
|
||||
const val chineseEnglishKorean = 1 shl 1 // 左移一位 中英韩
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(notice: String?) {
|
||||
showNotice(notice, AIAssist.LEVEL0)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNoticeOut(notice: String?) {
|
||||
save2Log("车外准备播放 内容${notice}")
|
||||
notice?.let {
|
||||
if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){
|
||||
val outofVoice = OutofVoice(notice)
|
||||
LanSocketManager.sendMsgToClient(outofVoice)
|
||||
}else{
|
||||
AIAssist.getInstance(AbsMogoApplication.getApp()).playVoiceOutside(notice)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(notice: String?, level: Int) {
|
||||
showNotice(notice,level,0)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(notice: String?, delayed: Long) {
|
||||
showNotice(notice, AIAssist.LEVEL0, delayed)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(notice: String?, delayed: Long,callback:IMogoTTSCallback ) {
|
||||
showNotice(notice, AIAssist.LEVEL0, delayed,callback)
|
||||
}
|
||||
|
||||
|
||||
@JvmStatic
|
||||
@@ -99,12 +67,6 @@ object VoiceNotice {
|
||||
}
|
||||
|
||||
|
||||
fun speakTTSVoiceWithLevel(text:String, level:Int, callBack:IMogoTTSCallback){
|
||||
save2Log("准备播放${text}")
|
||||
AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSVoiceWithLevel(text,level,callCallBack(callBack))
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private fun callCallBack(callBack: IMogoTTSCallback?):IMogoTTSCallback{
|
||||
@@ -1,14 +1,29 @@
|
||||
package com.mogo.och.common.module.voice
|
||||
package com.mogo.och.biz.media.tts
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
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.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.OutofVoice
|
||||
|
||||
object OutOffVoice {
|
||||
object VoiceOut {
|
||||
|
||||
@JvmStatic
|
||||
fun showNoticeOut(notice: String?) {
|
||||
VoiceIn.save2Log("车外准备播放 内容${notice}")
|
||||
notice?.let {
|
||||
if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){
|
||||
val outofVoice = OutofVoice(notice)
|
||||
LanSocketManager.sendMsgToClient(outofVoice)
|
||||
}else{
|
||||
AIAssist.getInstance(AbsMogoApplication.getApp()).playVoiceOutside(notice)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val outffListener = object : ILanMessageListener<OutofVoice> {
|
||||
override fun targetLan(): Class<OutofVoice> {
|
||||
@@ -31,7 +31,7 @@ import com.mogo.och.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.utils.CallerBase
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.common.module.biz.media.VoiceNotice
|
||||
import com.mogo.och.data.bean.BusStationBean
|
||||
import com.mogo.och.data.bean.ContraiInfo
|
||||
import com.mogo.och.data.bean.LineInfo
|
||||
|
||||
@@ -3,7 +3,8 @@ 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 {
|
||||
interface IVideoListener {
|
||||
|
||||
fun diapatchMedia(list :MutableList<MediaItem>)
|
||||
|
||||
fun setMediaPause(){}
|
||||
@@ -13,6 +14,7 @@ interface IMediaListener {
|
||||
}
|
||||
|
||||
interface MusicDataChangeListener{
|
||||
|
||||
fun addOneData(it: MusicData){}
|
||||
|
||||
/**
|
||||
@@ -4,18 +4,20 @@ 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
|
||||
import com.mogo.tts.base.IMogoTTSCallback
|
||||
import com.mogo.tts.base.LangTtsEntity
|
||||
|
||||
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 addListener(tag:String, listener: IVideoListener){
|
||||
mediaService?.addVideoListener(tag,listener)
|
||||
}
|
||||
|
||||
fun removeListener(tag: String){
|
||||
mediaService?.removeBridgeListener(tag)
|
||||
mediaService?.removeVideoListener(tag)
|
||||
}
|
||||
|
||||
fun postSiteIntroduceInfo(list: MutableList<MediaItem>){
|
||||
@@ -89,4 +91,31 @@ object MediaManager {
|
||||
|
||||
}
|
||||
|
||||
object Tts{
|
||||
|
||||
fun loadOuttts(){
|
||||
mediaService?.loadOuttts()
|
||||
}
|
||||
|
||||
fun releaesOuttts(){
|
||||
mediaService?.releaseOuttts()
|
||||
}
|
||||
|
||||
fun showNotice(notice: String?, level: Int, delayed: Long = 0,callBack: IMogoTTSCallback?=null){
|
||||
mediaService?.showNotice(notice,level,delayed,callBack)
|
||||
}
|
||||
|
||||
fun showNotice(listTTS: MutableList<LangTtsEntity>, level: Int, callBack: IMogoTTSCallback?=null){
|
||||
mediaService?.showNotice(listTTS,level,callBack)
|
||||
}
|
||||
|
||||
fun stopTts(){
|
||||
mediaService?.stopTTs()
|
||||
}
|
||||
|
||||
fun showNoticeOut(notice: String?) {
|
||||
mediaService?.showNoticeOut(notice)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,12 +3,14 @@ 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
|
||||
import com.mogo.tts.base.IMogoTTSCallback
|
||||
import com.mogo.tts.base.LangTtsEntity
|
||||
|
||||
interface MediaService : IProvider {
|
||||
|
||||
fun addMediaListener(tag: String, listener: IMediaListener)
|
||||
fun addVideoListener(tag: String, listener: IVideoListener)
|
||||
|
||||
fun removeBridgeListener(tag: String)
|
||||
fun removeVideoListener(tag: String)
|
||||
|
||||
fun postSiteIntroduceInfo(list: MutableList<MediaItem>)
|
||||
|
||||
@@ -44,4 +46,16 @@ interface MediaService : IProvider {
|
||||
|
||||
fun getAuditionDataList(): MutableList<MusicData>
|
||||
|
||||
fun showNotice(notice: String?, level: Int, delayed: Long, callBack: IMogoTTSCallback?)
|
||||
|
||||
fun showNotice(listTTS: MutableList<LangTtsEntity>, level: Int, callBack: IMogoTTSCallback?=null)
|
||||
|
||||
fun stopTTs()
|
||||
|
||||
fun loadOuttts()
|
||||
|
||||
fun releaseOuttts()
|
||||
|
||||
fun showNoticeOut(notice: String?)
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.mogo.och.common.module.biz.media
|
||||
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.tts.base.IMogoTTSCallback
|
||||
import com.mogo.tts.base.LangTtsEntity
|
||||
|
||||
object VoiceNotice {
|
||||
|
||||
@JvmStatic
|
||||
fun showNoticeOut(notice: String?) {
|
||||
MediaManager.Tts.showNoticeOut(notice)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(notice: String?) {
|
||||
showNotice(notice, AIAssist.LEVEL0)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(notice: String?, level: Int) {
|
||||
showNotice(notice,level,0)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(notice: String?, level: Int, delayed: Long) {
|
||||
showNotice(notice, level, delayed,null)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(notice: String?, level: Int, delayed: Long = 0,callBack:IMogoTTSCallback?=null) {
|
||||
MediaManager.Tts.showNotice(notice,level,delayed,callBack)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showNotice(listTTS: MutableList<LangTtsEntity>, level: Int,callBack: IMogoTTSCallback?=null) {
|
||||
MediaManager.Tts.showNotice(listTTS,level,callBack)
|
||||
}
|
||||
|
||||
/**
|
||||
* 中断当前在播语音
|
||||
*/
|
||||
@JvmStatic
|
||||
fun stopCurrentTts(){
|
||||
MediaManager.Tts.stopTts()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,7 +8,6 @@ import android.os.Build
|
||||
import androidx.annotation.RequiresApi
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.commons.voice.IMogoVoiceCmdCallBack
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
@@ -18,7 +17,8 @@ import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.common.module.biz.media.VoiceNotice
|
||||
import com.mogo.tts.base.IMogoTTSCallback
|
||||
|
||||
|
||||
object LanSocketManager : LanSocketManagerJava() {
|
||||
@@ -90,19 +90,18 @@ object LanSocketManager : LanSocketManagerJava() {
|
||||
.build()
|
||||
mAudioManager.requestAudioFocus(mAudioFocusRequest) //抢占焦点
|
||||
|
||||
VoiceNotice
|
||||
.speakTTSVoiceWithLevel(msg, AIAssist.LEVEL0, object : IMogoVoiceCmdCallBack {
|
||||
override fun onSpeakEnd(speakText: String?) {
|
||||
mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
|
||||
}
|
||||
VoiceNotice.showNotice(msg,AIAssist.LEVEL0,0,object :IMogoTTSCallback{
|
||||
override fun onSpeakEnd(speakText: String?) {
|
||||
mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
|
||||
}
|
||||
|
||||
override fun onSpeakError(speakText: String?, errorMsg: String?) {
|
||||
mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
|
||||
}
|
||||
override fun onSpeakError(speakText: String?, errorMsg: String?) {
|
||||
mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
|
||||
}
|
||||
|
||||
override fun onSpeakSelectTimeOut(speakText: String?) {
|
||||
mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
|
||||
}
|
||||
})
|
||||
override fun onSpeakSelectTimeOut(speakText: String?) {
|
||||
mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,21 +1,11 @@
|
||||
package com.mogo.och.common.module.wigets.media
|
||||
|
||||
import android.Manifest
|
||||
import android.app.ActivityOptions
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Bundle
|
||||
import android.provider.Settings
|
||||
import android.view.Display
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.mogo.eagle.core.function.main.MainLauncherActivity
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ActivityUtils
|
||||
import com.mogo.eagle.core.utilcode.util.BarUtils
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
|
||||
class MediaPlayerActivity : AppCompatActivity() {
|
||||
|
||||
@@ -24,7 +14,7 @@ class MediaPlayerActivity : AppCompatActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_video_player)
|
||||
val fragment = MediaPlayerFragment()
|
||||
val fragment = VideoPlayerFragment()
|
||||
supportFragmentManager.beginTransaction().add(R.id.videoPlayerContainer, fragment)
|
||||
.commitAllowingStateLoss()
|
||||
BarUtils.hideStatusBarAndSticky(this.window)
|
||||
|
||||
@@ -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.IMediaListener
|
||||
import com.mogo.och.common.module.biz.media.IVideoListener
|
||||
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
|
||||
@@ -23,11 +23,11 @@ import kotlinx.android.synthetic.main.fragment_video_player.imageVideoRotationVi
|
||||
* @author: wangmingjun
|
||||
* @date: 2022/4/12
|
||||
*/
|
||||
class MediaPlayerFragment :
|
||||
MvpFragment<MediaPlayerFragment?, MediaPlayerPresenter?>(), IMediaListener {
|
||||
class VideoPlayerFragment :
|
||||
MvpFragment<VideoPlayerFragment?, MediaPlayerPresenter?>(), IVideoListener {
|
||||
|
||||
companion object {
|
||||
private val TAG = MediaPlayerFragment::class.java.simpleName
|
||||
private val TAG = VideoPlayerFragment::class.java.simpleName
|
||||
}
|
||||
|
||||
private var arrayListOf = mutableListOf<MediaItem>()
|
||||
@@ -130,5 +130,5 @@ class MediaPlayerFragment :
|
||||
}
|
||||
}
|
||||
|
||||
class MediaPlayerPresenter(view: MediaPlayerFragment?) :
|
||||
Presenter<MediaPlayerFragment?>(view)
|
||||
class MediaPlayerPresenter(view: VideoPlayerFragment?) :
|
||||
Presenter<VideoPlayerFragment?>(view)
|
||||
Reference in New Issue
Block a user