9.16. 数字音量(DIGITAL_VOL)

概述

提供数字音量的使用流程

audio_config.c 文件, 可配置以下参数:

const int config_digital_fade_step = 1;                 //单位采样点音量变化量
const int config_digital_vol_max = 100;                 //最大音量

用户自定义音量表参考如下:

static const u16 user_dig_vol_table[] = {
        0       , //0
        93      , //1
        111     , //2
        132     , //3
        158     , //4
        189     , //5
        226     , //6
        270     , //7
        323     , //8
        386     , //9
        462     , //10
        552     , //11
        660     , //12
        789     , //13
        943     , //14
        1127, //15
        1347, //16
        1610, //17
        1925, //18
        2301, //19
        2751, //20
        3288, //21
        3930, //22
        4698, //23
        5616, //24
        6713, //25
        8025, //26
        9592, //27
        11466,//28
        15200,//29
        16000,//30
        16384 //31
};

9.16.1. 使用流程

  • 1.打开解码服务后,在调用cmd AUDIO_DEC_OPEN 时候传递参数(解码服务打开流程详情查看 音频解码 章节)

/*中间省略其他参数*/
    req.dec.cmd                             = AUDIO_DEC_OPEN;

    req.dec.effect                  = AUDIO_EFFECT_DIGITAL_VOL;

    err = server_request(__this->dec_server, AUDIO_REQ_DEC, &req);
    1. 获取音效处理句柄,调用cmd AUDIO_DEC_GET_EFFECT_HANDLE , 返回的 req.dec.get_hdl 就是音效处理句柄, 此时可以选择设置用户自定义音量表(可选),不设置的话默认用库里面的音量表

req.dec.cmd                             = AUDIO_DEC_GET_EFFECT_HANDLE;
req.dec.effect                  = AUDIO_EFFECT_DIGITAL_VOL;

err = server_request(__this->dec_server, AUDIO_REQ_DEC, &req);

user_audio_digital_set_volume_tab(req.dec.get_hdl, user_dig_vol_table, ARRAY_SIZE(user_dig_vol_table)); //自定义音量表(可选)
    1. 调节数字音量

调节数字音量, 可以单独调节当前解码器,当前音频的声音大小, 不影响到另外一个解码器, 常常用在混音、叠音中。

user_audio_digital_volume_set(req.dec.get_hdl, volume, fade_en);
    1. 获取数字音量

int get_volume = user_audio_digital_volume_get(req.dec.get_hdl);
    1. 重置数字音量

user_audio_digital_volume_reset_fade(req.dec.get_hdl);

9.16.2. API参考

Warning

doxygenfile: Cannot find file “digital_vol.h