MTK 铃声音量每级增益值修改为使用Audio player 16级增益值的方法
来源:互联网 发布:java泛型使用场景 编辑:程序博客网 时间:2024/05/22 15:53
声音通道简化后如下图,软件有两个控制音量的寄存器可以设置
情景模式--〉音量--〉铃声--〉(1--7),这里是对模拟增益做7级设置
Audio player/video player 的音量控制实际上是对模拟增益做16级设置(0-15),
只是我们大多数项目把audio player音量条做成了0-7,对应16级设置的0,2,4,6,8,10,12,15。
由于相同等级音量配置的增益值不一样,这样经常出现同一首MP3 在audio player 和 文件管理里单首播放时音量表现不一样。
可将情景模式里的铃声音量1-7修改成用audio player 的16级设置,1-7对应16级的2,4,6,8,10,12,15。
修改代码如下:
请注意在mak文件中添加宏:__RGT_MELODY_VOL_SETTING_USE_16_LEVEL_ONLY__
void aud_set_melody_volume(kal_uint8 mode, kal_uint8 level)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint8 new_level;
kal_uint8 analog_gain;
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint8 new_level;
kal_uint8 analog_gain;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
AUD_FUNC_ENTRY2(AUD_TRC_SET_MELODY_VOLUME, mode, level);
/* Code Body */
/*----------------------------------------------------------------*/
AUD_FUNC_ENTRY2(AUD_TRC_SET_MELODY_VOLUME, mode, level);
………………
………………
/* 7 level volume (MSB bit is not set) */
if (!(level & 0x80))
{
#if defined(__RGT_MELODY_VOL_SETTING_USE_16_LEVEL_ONLY__)
new_level = (new_level+1)*2; /*0-6 map to 2,4,6,8,10,12,15*/
if( new_level>= 14)
{
new_level = 15;
}
#ifdef __16_LEVEL_AUDIO_VOLUME__
Media_SetLevelVolume( aud_context_p->acoustic_data.max_melody_volume_gain[mode],
aud_context_p->acoustic_data.melody_volume_gain_step[mode],
15 - new_level);
#else
ASSERT(0);
#endif /* __16_LEVEL_AUDIO_VOLUME__ */
#else
#if defined(TV_OUT_SUPPORT)
if (mode == VOL_TV_OUT)
{
analog_gain = aud_get_volume_gain(mode, AUD_VOLUME_TVO, new_level);
}
else
#endif /* TV_OUT_SUPPORT */
{
analog_gain = aud_get_volume_gain(mode, AUD_VOLUME_MEDIA, new_level);
}
aud_melody_set_output_volume(analog_gain, 0);
#endif
}
/* 16 level volume */
else
{
{
new_level = 15;
}
#ifdef __16_LEVEL_AUDIO_VOLUME__
Media_SetLevelVolume( aud_context_p->acoustic_data.max_melody_volume_gain[mode],
aud_context_p->acoustic_data.melody_volume_gain_step[mode],
15 - new_level);
#else
ASSERT(0);
#endif /* __16_LEVEL_AUDIO_VOLUME__ */
#else
#if defined(TV_OUT_SUPPORT)
if (mode == VOL_TV_OUT)
{
analog_gain = aud_get_volume_gain(mode, AUD_VOLUME_TVO, new_level);
}
else
#endif /* TV_OUT_SUPPORT */
{
analog_gain = aud_get_volume_gain(mode, AUD_VOLUME_MEDIA, new_level);
}
aud_melody_set_output_volume(analog_gain, 0);
#endif
}
/* 16 level volume */
else
{
………………
}
}
}
}
0 0
- MTK 铃声音量每级增益值修改为使用Audio player 16级增益值的方法
- MTK 铃声音量每级增益值修改为使用Audio player 16级增益值的方法
- 增益
- 增益
- 增益
- 增益
- MTK铃声修改方法
- MT6735修改听筒增益
- 伺服增益调整方法
- 增益的概念
- 信息增益的概念
- 天线增益的理解
- eg4002的增益调节
- 信息增益的理解
- Android 铃声默认音量的修改
- MT6580 使用外部PA出现无声、音量小或者无法调增益
- MT6580 使用外部PA出现无声、音量小或者无法调增益
- mt6735 [kernel driver]MT6580使用外部PA出现无声、音量小或者无法调增益
- MP3文件格式分析详解(实例分析)
- centos 生成随机密码
- 机器学习系列(6):BP神经网络
- 多态练习
- VC/MFC子窗体向父窗体传递参数的几种方法
- MTK 铃声音量每级增益值修改为使用Audio player 16级增益值的方法
- 分布式 高性能Web服务器架构
- Cocos2d-x 3.0 回调函数的变化
- 数学分析题:约瑟夫环
- 【LeetCode】Maximal Rectangle
- MTK 音频和BMT简介
- 电子产品检验-检验中心
- 点点滴滴(一)
- 依赖注入与控制反转