AVIPCM数据流接入AIVOICE
📎 原始文档:https://www.kdocs.cn/l/cez2lyMi5Qo4 AVIPCM数据流接入AIVOICE
707标准版SDK补丁
707LITESDK补丁
SDK.zip
注:打上补丁后请在如图所示位置添加新任务
背景
将 AVI 文件的 PCM 数据流接入 AIVOICE,核心是针对性解决两大关键问题:
一、是不同音频采样率的 AVI 文件切换时易出现的死机故障,保障播放流程的稳定性;
二、是优化喇叭输出音量偏小的体验短板,让音频播放效果更符合使用需求。
接入AI VOICE验证
代码设计





AVI正常播放
经验证未出现音画不同步的问题,将pcm接入aivoice之后avi保持正常播放流程
JLstudio可视化配置

经验证添加DRC可提高音量,该方案可解决 喇叭声音小的问题
不同音频采样率avi切换验证
验证三个avi视频
| newV1.avi | V2.avi | V3.avi | |
|---|---|---|---|
| FPS 帧/s | 20 | 20 | 30 |
| 音频采样率 Hz | 16000 | 8000 | 8000 |
经过顺序轮播、手动切换验证,3者切换没有发生死机,且音视频正常播放。因此接入现成音频流可解决不同音频采样率的avi切换会死机的问题。
JLstudio 配置AVI音频流
将带有新节点的v6stencil.stencil替换至jlstudio的路径下。注意要选择相应sdk版本的路径
(v6stencil.stencil文件请更新至最新版sdk或联系杰理工程师获取)
重新打开可视化工具,添加新节点
参考AI VOICE 接入PCM数据(avi_audio_player.c avi_audio_file.c avi_audio_player.h node_uuid.h)


音量控制器相关接入



AVI音频流的音量调节效果
现在AVI音频流只需要调用audio_app_volume_set(APP_AUDIO_STATE_MUSIC,音量值,1)即可调节AVI视频播放音量
avi_pcm_open中设置音频状态
定时器修改音量测试实际效果
static int cnt = 0;
static int testvol = 0;
static void vol_cb(void *p)
{
extern void audio_app_volume_set(u8 state, s16 volume, u8 fade);
if (cnt < 101)
{
testvol += 1;
}
else if (cnt > 100 && cnt < 201)
{
testvol -= 1;
}
else
{
cnt = 0;
}
cnt++;
audio_app_volume_set(APP_AUDIO_STATE_MUSIC, testvol, 1);
}
JLstudio 配置:
实际效果:

DRC的配置会影响音量调节曲线
707标准sdk AVI音频流补丁文件
完整流程:
apps\watch\ui\jlui_app\STYLE_WATCH_PUBLIC_MOLDS\B\b.c






audio\framework\nodes\avi_audio_file.c

audio\interface\player\avi_audio_player.c

audio\interface\include\avi_audio_player.h

interface\media\framework\include\node_uuid.h
音量接入请看 :音量控制器相关接入 章节