From 117bb66d85a536045d55961851543f935b604eb9 Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Tue, 23 Dec 2025 10:44:35 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E8=93=9D=E7=89=99=E6=89=93?= =?utf8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../zhihui/ai/media/ai_media_service_ext.cpp | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/code/sdk/zhihui/ai/media/ai_media_service_ext.cpp b/code/sdk/zhihui/ai/media/ai_media_service_ext.cpp index d77135936..8badf5102 100644 --- a/code/sdk/zhihui/ai/media/ai_media_service_ext.cpp +++ b/code/sdk/zhihui/ai/media/ai_media_service_ext.cpp @@ -2450,6 +2450,30 @@ int32_t AI_ForceInterrupt(void) // ResetAudioStreams(); MEDIA_INFO_LOG("AI voice force interrupt completed"); + + if (a2dp_is_connect) + { + uint32_t queueSize = 0, queueCapacity = 0; + AI_GetQueueStatus(&queueSize, &queueCapacity); + if (queueSize == 0) + { + // 使用静音音频数据(自动匹配大小) + AIVoiceQueueMessage cachedMsg; + cachedMsg.size = SILENCE_AUDIO_SIZE; + cachedMsg.data = (uint8_t *)malloc(cachedMsg.size); + memcpy(cachedMsg.data, (void*)silence_audio, SILENCE_AUDIO_SIZE); + + osStatus_t queueStatus = osMessageQueuePut(g_aiVoiceContext->inputQueue, &cachedMsg, 0, 0); + if (queueStatus == osOK) { + g_aiVoiceContext->queueMsgCount++; + // MEDIA_INFO_LOG("Successfully restored %u bytes from cache to queue", cachedMsg.size); + } else { + MEDIA_ERR_LOG("Failed to restore cached data to queue: %d", queueStatus); + // 如果队列写入失败,释放内存 + free(cachedMsg.data); + } + } + } MediaMutexUnLock(mutex); return 0; -- 2.17.1