[M2] 视频取消取第一帧逻辑
This commit is contained in:
@@ -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)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user