diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index ec51a04065..2e692b6b9f 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -1,6 +1,9 @@ package com.mogo.och.bus.passenger.model import android.content.Context +import android.media.AudioAttributes +import android.media.AudioFocusRequest +import android.media.AudioManager import android.net.ConnectivityManager import android.os.Handler import com.mogo.commons.module.intent.IMogoIntentListener @@ -155,28 +158,28 @@ class PM2DrivingModel private constructor() { private fun speakTTS(msg: String) { -// var mAudioManager = mContext?.getSystemService(Context.AUDIO_SERVICE) as AudioManager -// var mAudioAttributes = AudioAttributes.Builder() -// .setUsage(AudioAttributes.USAGE_MEDIA) //设置声音的用途 -// .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) //设置声音的类型 -// .build() -// var mAudioFocusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK) //设置焦点类型 -// .setAudioAttributes(mAudioAttributes) //设置声音属性 -// .setAcceptsDelayedFocusGain(false) //设置接受延迟获取焦点,需要设置OnAudioFocusChangeListener来监听焦点的获取 -// .build() -// mAudioManager.requestAudioFocus(mAudioFocusRequest) //抢占焦点 + var mAudioManager = mContext?.getSystemService(Context.AUDIO_SERVICE) as AudioManager + var mAudioAttributes = AudioAttributes.Builder() + .setUsage(AudioAttributes.USAGE_MEDIA) //设置声音的用途 + .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) //设置声音的类型 + .build() + var mAudioFocusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK) //设置焦点类型 + .setAudioAttributes(mAudioAttributes) //设置声音属性 + .setAcceptsDelayedFocusGain(false) //设置接受延迟获取焦点,需要设置OnAudioFocusChangeListener来监听焦点的获取 + .build() + mAudioManager.requestAudioFocus(mAudioFocusRequest) //抢占焦点 AIAssist.getInstance(mContext).speakTTSVoiceWithLevel(msg,AIAssist.LEVEL0,object : IMogoVoiceCmdCallBack{ override fun onSpeakEnd(speakText: String?) { -// mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest) + mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest) } override fun onSpeakError(speakText: String?, errorMsg: String?) { -// mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest) + mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest) } override fun onSpeakSelectTimeOut(speakText: String?) { -// mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest) + mAudioManager.abandonAudioFocusRequest(mAudioFocusRequest) } }) } diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt index 2cb70cebd6..fc9654f1e0 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt @@ -1,6 +1,7 @@ package com.mogo.och.bus.passenger.ui.widget.video import android.content.Context +import android.media.AudioManager import android.util.AttributeSet import com.shuyu.gsyvideoplayer.utils.Debuger import com.shuyu.gsyvideoplayer.utils.GSYVideoType @@ -79,4 +80,24 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer { setViewShowState(mThumbImageViewLayout, INVISIBLE) setViewShowState(mThumbImageView, INVISIBLE) } + + //失去焦点声音压低 + override fun onLossTransientCanDuck() { +// setStreamVolume(0.2f) + } + + //获取焦点声音恢复 + override fun onGankAudio() { +// setStreamVolume(5.0f) + } + + private fun setStreamVolume(percent: Float){ + var mAudioManager = mContext?.getSystemService(Context.AUDIO_SERVICE) as AudioManager + var maxVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC) + var volume = (percent * maxVolume).toInt() + if (volume < 0 ){ + volume = 0 + } + mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,volume,0) + } } \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt index 33c84d9efe..d69e2df6e0 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt @@ -17,6 +17,7 @@ import com.mogo.eagle.core.utilcode.util.FileUtils import com.mogo.eagle.core.utilcode.util.ThreadPoolService import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.bus.passenger.R +import com.mogo.och.common.module.utils.OCHThreadPoolManager import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack import java.lang.Exception @@ -88,13 +89,13 @@ class AdvanceVideoView @JvmOverloads constructor( // BitmapHelper.getVideoThumbnail(path) /*获取第一帧图*/ cacheImage?.setImageResource(R.drawable.m2_p_video_holder) setCacheImageViewVisible() - ThreadPoolService.execute { - var bitmap = BitmapHelper.getVideoThumbnail(fileNetPath) +// OCHThreadPoolManager.getsInstance().execute { +// var bitmap = BitmapHelper.getVideoThumbnail(fileNetPath) Logger.d(ImageAndVideoRotation.TAG, "setVideoPath") - ThreadUtils.runOnUiThread { - Logger.d(ImageAndVideoRotation.TAG, "bitmap加载") +// ThreadUtils.runOnUiThread { +// Logger.d(ImageAndVideoRotation.TAG, "bitmap加载") cacheImage?.let { - Glide.with(context).load(bitmap) + Glide.with(context).load(cacheImageUrl) .apply( RequestOptions().placeholder(R.drawable.m2_p_video_holder) .error(R.drawable.m2_p_video_holder) @@ -103,8 +104,8 @@ class AdvanceVideoView @JvmOverloads constructor( ) .into(it) } - } - } +// } +// } } fun clearLocalErrorVideo(){ @@ -131,6 +132,7 @@ class AdvanceVideoView @JvmOverloads constructor( //判断是否已经下载 if (downloadVideoName.isNotEmpty()){ if (FileUtils.isFileExists(Config.downLoadPath + downloadVideoName)){ + Logger.d(ImageAndVideoRotation.TAG, "have cache startPlay") startPlay() return } @@ -140,6 +142,7 @@ class AdvanceVideoView @JvmOverloads constructor( private fun startDownLoadVideo(){ //下载视频, 下载成功后再播放 + Logger.d(ImageAndVideoRotation.TAG, "startDownLoadVideo") DownloadUtils.downLoad(context,fileNetPath, Config.downLoadPath ,downloadVideoName,5,downListener) }