From 8d1ed1018a9a1b80d7d1d2c86f4281a969e364d7 Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Thu, 4 Dec 2025 09:52:17 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E9=9B=B7=E9=B8=9F=E9=9F=B3?= =?utf8?q?=E9=A2=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/zhihui/utilscpp/audio_test.cpp | 54 ++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/code/sdk/zhihui/utilscpp/audio_test.cpp b/code/sdk/zhihui/utilscpp/audio_test.cpp index 4f33bdee1..c11f2b30c 100644 --- a/code/sdk/zhihui/utilscpp/audio_test.cpp +++ b/code/sdk/zhihui/utilscpp/audio_test.cpp @@ -71,6 +71,20 @@ static uint32_t GetCurrentTimeMs(void) return (tick_count * 1000) / tick_freq; } +static void AudioCircleTestDataCallback(const uint8_t* data, uint32_t size, void* userData) +{ + (void)userData; + + if (data == nullptr || size == 0) { + return; + } + + printf("size : %d\n",size); + + int32_t ret = AI_SendAudioDataToQueue(data, size); + return; +} + /** * @brief AI语音数据回调函数 - 收集录音数据用于音量计算 * @param data 音频数据 @@ -275,7 +289,7 @@ static void* AudioPlayThread(void* arg) // 使用AI_WriteAudioData发送到播放服务 // 注意:AI_WriteAudioData内部有usleep(40*size),5个周期(160字节)会sleep约6.4ms // 这个sleep会自然控制播放节奏,我们不需要额外等待 - int32_t ret = AI_WriteAudioData(pcm_buffer, buffer_size); + int32_t ret = AI_SendAudioDataToQueue(pcm_buffer, buffer_size); if (ret != 0) { // 如果发送失败,短暂等待后继续 usleep(500); @@ -292,6 +306,44 @@ exit_loop: return nullptr; } +/** + * @brief 启动音频测试 + * @return 0 成功, -1 失败 + */ +int custom_audio_circle_test_start(void) +{ + PRINT("[AudioTest] Starting audio test...\r\n"); + + // 初始化播放音量(默认1.0,即原始音量) + g_audio_test_ctx.play_volume = 1.0f; + + // 初始化AI媒体服务 + int32_t ret ; + // 启动AI语音服务(使用old_Start_AIVoice) + // 不使用OGG封装 + ret = old_Start_AIVoice(AudioCircleTestDataCallback, nullptr, nullptr,nullptr, nullptr,false); + if (ret != 0) { + PRINT("[AudioTest] Failed to start AI voice service: %d\r\n", ret); + // MediaMutexUnLock(g_audio_test_ctx.mutex); + return -1; + } + + PRINT("[AudioTest] Audio test started successfully\r\n"); + PRINT("[AudioTest] Playing 1kHz tone, monitoring volume every 0.5s...\r\n"); + + return 0; +} + +int custom_audio_circle_test_stop(void) +{ + PRINT("[AudioTest] Starting audio test...\r\n"); + + StopAIVoice(); + + return 0; +} + + /** * @brief 启动音频测试 * @return 0 成功, -1 失败 -- 2.17.1