MTK的铃声修改与替换

转载 2011年01月18日 10:45:00

MTK的资源一直深受研发人诟病,几乎成为初入手MTK人的挥之不去的痛楚,主要是因为缺乏相关的专业管理工具。虽然有一些公司自己开发一些图片了,字串,菜单了管理工具,但都由于各种各样的条件限制,没有流通开来。比如菜单,明明已经加好了,就是显示不出来,明明个数已经算对了,仍然显示错乱,即使是一个训练有素的老鸟,拿到一份别的公司的代码,不仔细研究一下随便添加菜单,十分八九也会出错。所幸后来MTK添加了新的菜单函数,为我们许多人节省了数菜单个数的时间。再比如图片,既有放在压缩包里的,也有放在压缩包外的,还有直接在代码里使用数组存储的,为初学者造成的困惑着实不小。

这里只是简单介绍一下MTK的铃声。有关菜单,图片,字串,NV, 字库,主题了,有时间慢慢写。

MTK支持的铃声还是比较多的,常见的MP3,WAV,MID等等都支持。同时MTK既支持数组存储的铃声,也支持资源类型的铃声。不过习惯上我们一般都使用数组类型的铃声。所谓数组类型的铃声,就是把铃声数据按字节顺序存储在数组中,标明铃声的类型和长度,供播放函数使用。MTK主要支持的文件格式可以在项目中文件med_main.h中找到,大概包括以下几种:

enum{
   MDI_FORMAT_NONE=-1,
   MDI_FORMAT_GSM_FR,                /* 0 */
   MDI_FORMAT_GSM_HR,               /* 1 */
   MDI_FORMAT_GSM_EFR,               /* 2 */
   MDI_FORMAT_AMR,                      /* 3 */
   MDI_FORMAT_AMR_WB,                  /* 4 */
   MDI_FORMAT_DAF,                     /* 5 */
   MDI_FORMAT_AAC,                     /* 6 */
   MDI_FORMAT_PCM_8K,                  /* 7 */
   MDI_FORMAT_PCM_16K,                 /* 8 */
   MDI_FORMAT_G711_ALAW,            /* 9 */
   MDI_FORMAT_G711_ULAW,            /* 10 */
   MDI_FORMAT_DVI_ADPCM,            /* 11 */
   MDI_FORMAT_VR,                   /* 12 */
   MDI_FORMAT_WAV,                  /* 13 */
   MDI_FORMAT_WAV_ALAW,             /* 14 */
   MDI_FORMAT_WAV_ULAW,              /* 15 */
   MDI_FORMAT_WAV_DVI_ADPCM,       /* 16 */
   MDI_FORMAT_SMF,                   /* 17 */
   MDI_FORMAT_IMELODY,            /* 18 */
   MDI_FORMAT_SMF_SND,              /* 19 */
   MDI_FORMAT_MMF,                 /* 20 */
   MDI_FORMAT_AU,                 /*  21 */
   MDI_FORMAT_AIFF,                 /*  22 */
   MDI_FORMAT_VRSI,                 /*  23 */
   MDI_FORMAT_WMA,                 /*  24 */  
   MDI_FORMAT_M4A,                   /*  25 */
   MDI_FORMAT_3GP,                     /* 26 */
   MDI_FORMAT_MP4,                          /* 27 */
   MDI_FORMAT_JPG,                             /* 28 */
   MDI_FORMAT_GIF,                             /* 29 */
   MDI_FORMAT_MJPG,                          /* 30 */
   MDI_FORMAT_PNG,                        /* 31 */  
   MDI_NO_OF_FORMAT
};

经常用作手机铃声的格式是以下几种(每一种都有对应的数值,主要用于播放函数的参数):

#define FORMAT_IMY "18"   /* sync with med_main.h */
#define FORMAT_MID "17"   /* sync with med_main.h */
#define FORMAT_WAV "13"   /* sync with med_main.h */
#define FORMAT_MMF "20"   /* sync with med_main.h */
#define FORMAT_MP3 "5"   /* sync with med_main.h */
#define FORMAT_PCM "7"   /* sync with med_main.h */
#define FORMAT_DVI "11"   /* sync with med_main.h */
#define FORMAT_AMR "3"   /* sync with med_main.h */

获取数组铃声的方式是十分简单的。可以从别的项目拷贝,也可以使用工具软件自己生成,如果实在不行,也可以自己写个读取文件的程序一个字节一个字节读出来并写到文本文件里。这里不做详述。

MTK主要的铃声一般放在文件resource_audio.c和文件custpack_audio.c两个文件,照相机的铃声是另外在resource_camera_skins.c文件中的。

首先对resource_camera_skins.c文件里的铃声做介绍:

该文件三个数组:

camera_sound_shutter_1

camera_sound_shutter_2

camera_sound_shutter_3

分别对应照相机拍照时的三种声音,这三个声音默认是WAV格式的,也可以改为MP3格式,但对MP3似乎对MP3格式有些挑剔,有些MP3会播不出来或者变音,需要试验才知道。调用的地方在mmi_camera_entry_burstshot_capture_state函数中,如果修改了铃声的格式,一定要在调用的地方对文件类型做修改。

camera_sound_countdown

对应连拍时的声音,默认文件类型同上。

介绍一下custpack_audio.c里的铃声:

该文件里有一个名字为custpack_audio类型为custpack_audio_header的结构,该结构体的描述了铃声的个数及铃声的类型,数据,大小等信息,默认的铃声是15个,这个结构的数据主要是修改情景模式里闹铃,电话的后十五首铃声。而闹铃,电话,而通话和闹铃的前10首(默认是10首)在文件resource_audio.c里修改;

介绍一下文件resource_audio.c,该文件里数据比较多,也比较复杂,主要包含了电话,短信,闹铃,搜网,开关机,开合盖等铃声。通话的前10首铃声包含在数组mtk_resource_imelodys中(数目是MTK默认,并不总是这样,开发人员可以修改铃声个数),闹铃一般会和通话使用相同的铃声,短信铃声包含在数组mtk_resource_message_sounds,开关机包含在数组mtk_resource_sounds中,开合盖也使用mtk_resource_sounds,mtk_resource_sounds和mtk_resource_message_sounds在MTK默认的情况下调用的音源是一样的,可以根据需要添加或者改为不一样的,如果修改了音源数组的文件类型,MTK默认的情况下一定要同步修改两个地方。搜网声一般使用开合盖的第三个铃声,不带盖的大概会使用mtk_resource_sounds的第三个铃声。如果要修改某类铃声个数,一定要同步修改resource_audio.h里默认的铃声个数。

 如果你想使用资源铃声,只要像添加图片一样,在Customer里创一个文件夹,放入你的铃声,然后像添加图片一样添加一个ID,并在模块对应的RES文件里绑定把ID和路径绑定。可以使用mdi_audio_play_id播放,或者使用get_audio获得数据,然后调用mdi_audio_snd_play_string_with_vol_path播放

(MTK)android 4.4,6.0系统开关机动画铃声修改

4.4的路径为 \vendor\mediatek\vanzo72_we_72_kk\artifacts\out\target\product\vanzo72_we_72_kk\system\media...

MTK铃声相关

MTK的资源一直深受研发人诟病,几乎成为初入手MTK人的挥之不去的痛楚,主要是因为缺乏相关的专业管理工具。虽然有一些公司自己开发一些图片了,字串,菜单了管理工具,但都由于各种各样的条件限制,没有流通开...

MTK 如何设置视频来电的默认铃声

[DESCRIPTION]   背景: 原始设计语音来电铃声和视频来电铃声是一起设置的。即设置的默认铃声同时是语音来电和视频来电的铃声。   需求: 只想单独设置视...

MTK 分别配置卡1卡2的默认铃声

[DESCRIPTION]   合入patch:ALPS00658552 后铃声设置中可以分别设置sim1和sim2的铃声。 但sim1和sim2的默认铃声都是一样的,如何分开设...

MTK官方铃声转数组工具

  • 2011年01月12日 11:11
  • 760KB
  • 下载

MTK bin文件铃声提取工具

  • 2008年09月22日 01:21
  • 589KB
  • 下载

Android开关机图片及动画铃声如何替换

开机图片和开关机动画的替换比较简单,准备好图片及动画的zip包后直接搜索替换,重新编译就好了 例如,我的项目是放在如下路径下: bootable/bootloader/lk/dev/logo/...

iPhone短信铃声制作(caf格式)及替换

最近有一些坛友对于“如何替换短信铃声”有疑问。具体操作方法跟更换来电铃声不太一样,想要替换短信铃声的朋友,来看教程咯。(替换短信铃声因为要更改系统的文件,所以只适用于越狱用户) ...
  • sbvfhp
  • sbvfhp
  • 2012年06月21日 14:01
  • 6182
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MTK的铃声修改与替换
举报原因:
原因补充:

(最多只允许输入30个字)