微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > MTK 50d 如何内置歌曲到音乐播放器

MTK 50d 如何内置歌曲到音乐播放器

时间:10-02 整理:3721RD 点击:
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

猜猜,不能白看了。

不错的资料

可以在下载的时候下进去

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top