707 低音量自动mute如何设置
📎 原始文档:https://www.kdocs.cn/l/clA5kLzqUyIX 707 低音量自动mute如何设置
问题解决: 该流程实现通过能量检测节点配置, 音频的自动 mute ,主要解决/规避低音量电流噪声较大或者硬件上干扰导致的音频问题
实现流程 添加节点
打开定义
把对应生成的 stream.bin 拷贝到tools 目录下 。
打印观察这里回调 ,
如何调参


音频流< mute阈值一段时间后自动mute,>unmute一段时间后解mute
可以通过音量控制器调节最低音量
可以播放一首歌低音量情况,保证音量1或者0 播放格是无声的 ,并且不会多次打印MUTE和 UNMUTE
extern void classd_core_digital_mute();
extern void classd_core_digital_unmute();
static void audio_energy_det_handler(void *prive, u8 event, u8 ch, u8 ch_total)
{
char name[16];
memcpy(name, prive, strlen(prive));
//name 模块名称,唯一标识
// ch < ch_total 时:表示通道(ch)触发的事件
// ch = ch_total 时:表示全部通道都触发的事件
if (ch < ch_total) {
/*
*针对独立通道,比如立体声场景,这里就分别显示ch0和ch1的能量
*适用于独立控制声道mute的场景
*/
printf(">>>>name:%s ch:%d %s\n", name, ch, event ? ("MUTE") : ("UNMUTE"));
}
if (ch == ch_total) {
/*
*针对所有通道,比如立体声场景,只有ch0和ch1都是mute,all_ch才是mute
*适用于控制整体
*/
printf(">>>>name:%s ch_total %s\n", name, event ? ("MUTE") : ("UNMUTE"));
if(event) {
// classd_core_digital_mute(); // 内置功放静音
// 外置功放操作mute 脚
}else {
// classd_core_digital_unmute(); // 内置功放恢复
// 外置功放操作mute 脚
}
}
}
同一格音量应该是一直保持 MUTE或者UNMUTE ,就说明你那边参数调整OK 的。