|
|
|
@ -13,6 +13,7 @@ import com.yunqiinnovation.chat_api.ChatApiService |
|
|
|
import com.yunqiinnovation.chat_api.StreamCallback |
|
|
|
import com.yunqiinnovation.chat_storage.ChatStorageHelper |
|
|
|
import com.yunqiinnovation.music_service.MusicSingleton |
|
|
|
import com.yunqiinnovation.music_service.MusicService |
|
|
|
import com.yunqiinnovation.amap_service.NavigationServiceHelper |
|
|
|
import com.yunqiinnovation.user_portrait.UserPortrait |
|
|
|
import com.yunqiinnovation.location_service.LocationService |
|
|
|
@ -160,6 +161,7 @@ object AgentService : CoroutineScope { |
|
|
|
|
|
|
|
var audioSourceType = AzureAsrHelper.AudioSourceType.MICROPHONE |
|
|
|
var navigationMode = "" |
|
|
|
var musicServiceType = "" |
|
|
|
// 语气词过滤列表(中英文) |
|
|
|
private val FILLER_WORDS = setOf( |
|
|
|
// 中文语气词 |
|
|
|
@ -270,7 +272,8 @@ object AgentService : CoroutineScope { |
|
|
|
|
|
|
|
// 初始化TTS服务 |
|
|
|
initializeTtsEngine(config) |
|
|
|
navigationMode = config["navigationMode"]?.toString() ?: "" |
|
|
|
navigationMode = config["navigationMode"]?.toString() ?: "" |
|
|
|
musicServiceType = config["musicServiceType"]?.toString() ?: "" |
|
|
|
// 初始化ChatAPI服务 |
|
|
|
chatApiService.initialize( |
|
|
|
config["openaiApiKey"]?.toString() ?: "", |
|
|
|
@ -415,11 +418,12 @@ object AgentService : CoroutineScope { |
|
|
|
} |
|
|
|
context.sendBroadcast(intent) |
|
|
|
Log.e(TAG, "QQ 音乐暂停播放") |
|
|
|
QQMusicSingleton.getInstance().autopauseMusic { result -> |
|
|
|
if (result.isSuccess) { |
|
|
|
isplaymusic = true |
|
|
|
} |
|
|
|
} |
|
|
|
autopauseMusic() |
|
|
|
// QQMusicSingleton.getInstance().autopauseMusic { result -> |
|
|
|
// if (result.isSuccess) { |
|
|
|
// isplaymusic = true |
|
|
|
// } |
|
|
|
// } |
|
|
|
} |
|
|
|
|
|
|
|
TtsEventType.PLAYBACK_COMPLETED -> { //结束AI播报内容 |
|
|
|
@ -434,11 +438,12 @@ object AgentService : CoroutineScope { |
|
|
|
if(currentRecognitionMode == "ble_wakeup"&&_isInterrupt.get()){ |
|
|
|
BleService.openB1Encoder() |
|
|
|
} |
|
|
|
if(isplaymusic){ |
|
|
|
isplaymusic = false |
|
|
|
Log.e(TAG, "QQ 音乐恢复播放") |
|
|
|
QQMusicSingleton.getInstance().resumeMusic { } |
|
|
|
} |
|
|
|
resumeMusic() |
|
|
|
// if(isplaymusic){ |
|
|
|
// isplaymusic = false |
|
|
|
// Log.e(TAG, "QQ 音乐恢复播放") |
|
|
|
// QQMusicSingleton.getInstance().resumeMusic { } |
|
|
|
// } |
|
|
|
} |
|
|
|
|
|
|
|
TtsEventType.ERROR -> { |
|
|
|
@ -919,6 +924,7 @@ object AgentService : CoroutineScope { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 处理文本输入 |
|
|
|
*/ |
|
|
|
@ -2729,4 +2735,34 @@ object AgentService : CoroutineScope { |
|
|
|
Log.e(TAG, "保存 _isInterrupt 缓存状态时发生异常: ${e.message}", e) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
* 自动暂停音乐 |
|
|
|
*/ |
|
|
|
private fun autopauseMusic(){ |
|
|
|
if ( musicServiceType == "QQ" ){ |
|
|
|
QQMusicSingleton.getInstance().autopauseMusic { result -> |
|
|
|
if (result.isSuccess) { |
|
|
|
isplaymusic = true |
|
|
|
} |
|
|
|
} |
|
|
|
}else{ |
|
|
|
if (MusicService.isPlaying()){ |
|
|
|
MusicSingleton.startServiceWithCommand(context, "pause") |
|
|
|
isplaymusic = true |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun resumeMusic() { |
|
|
|
if ( isplaymusic ){ |
|
|
|
Log.d(TAG, "音乐恢复 : $musicServiceType") |
|
|
|
isplaymusic = false |
|
|
|
if ( musicServiceType == "QQ" ){ |
|
|
|
QQMusicSingleton.getInstance().resumeMusic {} |
|
|
|
}else{ |
|
|
|
MusicSingleton.startServiceWithCommand(context, "resume") |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|