修复因为首包太大的导致写入失败的问题 3358/2
authorhcj <1224667075@qq.com>
Tue, 21 Apr 2026 09:25:11 +0000 (17:25 +0800)
committerhcj <1224667075@qq.com>
Tue, 21 Apr 2026 09:25:11 +0000 (17:25 +0800)
code/sdk/zhihui/ai/media/ai_media_service_ext.cpp

index e6550e4..ff853a9 100644 (file)
@@ -2207,7 +2207,7 @@ int32_t AI_WriteAudioData(const uint8_t* data, uint32_t size)
         // 延迟时间(微秒)= (数据大小(字节)* 8 * 1000000) / 比特率(bps)
         // 当比特率更高时,延迟时间更短
         // 公式:延迟(微秒)= (size * 8 * 1000000) / bit_rate
-        uint32_t delay_us = (uint32_t)((uint64_t)(size-(size/10*7)) * 8 * 1000000ULL / g_tts_audio_bit_rate);
+        uint32_t delay_us = (uint32_t)((uint64_t)(size-(size/10*6)) * 8 * 1000000ULL / g_tts_audio_bit_rate);
     #ifdef TIME_TICKS_TEST
         printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay_ms %d\r\n",(uint32_t)((uint64_t)(size) * 8 * 1000000ULL / g_tts_audio_bit_rate)/1000);
 
@@ -2223,7 +2223,7 @@ int32_t AI_WriteAudioData(const uint8_t* data, uint32_t size)
         usleep(delay_us-20);
         if (ret != 0) {
             retry_count++;
-            MEDIA_ERR_LOG("Failed to write audio data to output stream, ret=%d, retry %d/%d", ret, retry_count, MAX_RETRY_COUNT);
+            // MEDIA_ERR_LOG("Failed to write audio data to output stream, ret=%d, retry %d/%d size=%d", ret, retry_count, MAX_RETRY_COUNT, size);
             usleep(delay_us*retry_count/10*5);
             goto AI_WRITE;
         }
@@ -2594,7 +2594,7 @@ int32_t AI_ForceInterrupt(void)
     
     // 立即暂停和清空输出流
     // PauseAudioStreams();
-    ClearAudioStreams();
+    // ClearAudioStreams();
     
     // 立即恢复输出流
     // ResetAudioStreams();