MTK 50d 如何内置歌曲到音乐播放器
在Res_Audio.c里加路径需要添加的歌曲
#ifdef __MP3_TO_AUDIOPLAYER__
ADD_APPLICATION_AUDIO(CUST_AUDIO_PATH"/AUDIOPLAYER_MP3.mp3","../../mmi_customer/CustResource/ringData/include/AUDIOPLAYER_MP3.ring.txt");
#endif
在去mmitask.c的InitializeAll函数里加一个函数入口,开机就写文件.mp3到指定的路径里;
#ifdef __MP3_TO_AUDIOPLAYER__
WRITE_MP3_TO_MUSIC();
#endif
然后去AudioPlayerSrc.c里添加一个函数,这个函数在指定的路径 写文件函数;
#ifdef __MP3_TO_AUDIOPLAYER__
#include "kal_release.h"
#include "resource_header.h"
#include "resource_audio.h"
#include "mci.h"
__align(2) static const unsigned int AUDIOPLAYER_MP3[] =
{
#include "AUDIOPLAYER_MP3.ring.txt"
};
#define MY_PHONE_MUSIC_PATH ":/My Music/"
#define MY_PHONE_MUSIC_STR_PATH "OJ.mp3"
void WRITE_MP3_TO_MUSIC(void)
{
S16 error;
U32 written;
S32 ret = 0;
U8 File_default_path[FMGR_MAX_PATH_LEN + 1]={0};//= "C:\\My Music\\OJ.mp3";
U8 Dir_default_path[FMGR_MAX_PATH_LEN + 1]={0}; //= "C:\\My Music";
U8 path[FMGR_MAX_PATH_LEN + 1]={0}; //= "C:\\My Music";
FS_HANDLE fs_hdlr = -1;
U8 * mp3_buffer;
U32 mp3_lenght;
S8 D_file_path[64];
S8 F_file_path[64];
S8 file_path_in_ascii[32];
S8 path_in_ascii[32];
sprintf((char*)file_path_in_ascii, "%c%s", MMI_PUBLIC_DRV, MY_PHONE_MUSIC_PATH);
AnsiiToUnicodeString((PS8) D_file_path, file_path_in_ascii);
sprintf((char*)path_in_ascii, "%c%s%s", MMI_PUBLIC_DRV, MY_PHONE_MUSIC_PATH, MY_PHONE_MUSIC_STR_PATH);
AnsiiToUnicodeString((PS8) F_file_path, path_in_ascii);
pfnUnicodeStrcpy( (S8*) Dir_default_path, (const S8*) D_file_path);
pfnUnicodeStrcpy( (S8*) File_default_path, (const S8*) F_file_path);
mp3_buffer = (U8 *)AUDIOPLAYER_MP3;
mp3_lenght = sizeof(AUDIOPLAYER_MP3);
fs_hdlr = MMI_FS_Open(Dir_default_path,FS_OPEN_DIR | FS_READ_WRITE );
if (fs_hdlr < FS_NO_ERROR)
{
fs_hdlr = MMI_FS_CreateDir(Dir_default_path );//fs_hdlr = FS_CreateDir(Dir_default_path);
fs_hdlr = MMI_FS_Open(File_default_path, FS_CREATE_ALWAYS | FS_READ_WRITE );
if((ret = MMI_FS_Write(fs_hdlr,(void *)AUDIOPLAYER_MP3, mp3_lenght, (U32*) & written)) < 0)
{
MMI_FS_Close(fs_hdlr);
return;
}
MMI_FS_Close(fs_hdlr);
}
else
{
fs_hdlr = MMI_FS_Open(File_default_path,FS_READ_WRITE );
if(fs_hdlr < FS_NO_ERROR)
{
fs_hdlr = MMI_FS_Open(File_default_path, FS_CREATE_ALWAYS | FS_READ_WRITE );
if((ret = MMI_FS_Write(fs_hdlr,(void *)AUDIOPLAYER_MP3, mp3_lenght, (U32*) & written)) < 0)
{
MMI_FS_Close(fs_hdlr);
return;
}
}
MMI_FS_Close(fs_hdlr);
}
MMI_FS_Close(fs_hdlr);
}
#endif
MTK 没有自带什么解决方法么,开机写文件的话造成影响很大呀,能不能不写文件呀。
不好意思啊 我的列子 是互芯的啊!
互芯的不是自带的方法么。
Prefab(预置文件):
1.功能简介:
将需要预设的文件拷贝到指定目录下,编译选项CT_USERGEN=yes,即可将文件预设到用户数据区去。
2.实现方法:
Prefab程序会以soft/toolpool/usrgenerator/PREFAB为根遍历目录树,将改目录树以相同的目录结构“拷贝”到用户数据区的内存映象中去。
3.下表是预设目录与手机目录的对应表:
源目录 目标目录 设备名称
soft/toolpool/usrgenerator/PREFAB / (vds0)
soft/toolpool/usrgenerator/PREFAB/home /home (vds1)
soft/toolpool/usrgenerator/PREFAB/_wap_mms /_wap_mms (wap_mms)
4.应用举例:
1)在phone memory 的my music 目录下放置两个mp3文件:
先准备好目录和文件:
d:/my music--->1.mp3
|
|
---->2.mp3
然后将 my music 目录拷贝到 soft/toolpool/usrgenerator/PREFAB/home下即可
嘿嘿,回个贴表明我来过。
河南长垣网站优化 QQ 200672192 www.ai888.cn
猜猜,不能白看了。
不错的资料
可以在下载的时候下进去