Mp3模块简要介绍
一、Mp3主要功能描述:
基本功能:上一首、播放/暂停、下一首、停止
扩展功能:EQ设置(均衡器)、歌词显示设置、复读、顺序播放、循环播放
选项菜单:打开、正在播放列表、播放列表、设为铃音、添加到播放列表、添加到书签、
音乐书签、均衡器。
二、部分重要数据结构:
//列表信息
typedef struct
{
uint32 total_num; //list中条目总数目
wchar list_name[FMM_SEARCH_FILENAME_MAXLEN+1]; //list文件名
uint16 list_name_len; //list文件名长度
MMIMP3_PLAY_LIST_TYPE_E cur_list_type; //list类型
FILEARRAY cur_file_array; //list FMM Array
MMIMP3_LIST_SECTION_INFO_T list_section; //list片断 } MMIMP3_LIST_INFO_T;
//当前播放的动态状态信息
typedef struct
{
uint32 total_time; //当前激活的Mp3播放时长
uint32 cur_time; //当前音频播放的播放时刻
uint32 total_length; //当前激活的Mp3文件大小(字节长度)
uint32 cur_offset; //当前音频播放的播放位
uint32 sample_rate; //sample rate
uint32 bit_rate; //bit rate
} MMIMP3_PLAYING_DYN_INFO_T;
//Mp3 复读 control info
typedef struct
{
BOOLEAN is_end_file_end; //复读结束点为文件尾端
uint32 start_point; //复读起始点(bytes)
uint32 end_point; //复读结束点(bytes)
uint32 start_time; //复读起始时间(Second)
uint32 end_time; //复读结束时间(Second)
MMIMP3_REVIEW_STATE_TYPE_E state; //复读状态
} MMIMP3_REVIEW_INFO_T;
LOCAL MMIMP3_PLAY_INFO_T s_mp3_play_info = {0}; //播放控制结构 LOCAL MMIMP3_LIST_INFO_T *s_view_data_ptr = PNULL; //当前用于list box显示的列表(片断)
信息
LOCAL FILEARRAY s_all_list_array = PNULL; //所有播放列表的 FILE ARRAY LOCAL FILEARRAY s_all_mp3_array = PNULL; //全部曲目的FILE ARRAY LOCAL FILE_DEV_E_T s_all_mp3_file_dev = FS_INVALID;//全部曲目所在盘符 LOCAL MMIMP3_MUSIC_MARK_ALL_INFO_T *s_music_mark_info_ptr = PNULL; //所有音乐书签的信
息
Mp3播放器状态:
typedef enum
{
MMIMP3_AUDIO_OPENED, //open
MMIMP3_AUDIO_PLAYING, //play
MMIMP3_AUDIO_PAUSED, //pause
MMIMP3_AUDIO_STOPPED, //stop
MMIMP3_AUDIO_CLOSED, //close //not used for now
MMIMP3_AUDIO_STATE_MAX
} MMIMP3_AUDIO_STATE_E;
三、Mp3播放部分重要API:
MMIAUDIO_AudioPlay:
该函数用于根据指定的Audio Handle类型进行播放Audio。播放的统一接口,包括Buffer play
和File play。
MMIAUDIO_CreateAudioFileHandle:
该函数用于创建一个基于文件系统的Audio Handle。
MMIAUDIO_SetVolume:
该函数用于设置音频播放的音量大小。
MMIAUDIO_AudioGetFileInfo:
该函数用于判断打开的Audio文件是否为系统支持播放的。
MMIAPIMP3_SetMp3EqMode:
该函数设置播放模式,即调节均衡器。
…………
等等。
四、部分功能实现原理流程:
1、进入播放器界面时窗口显示过程:
2、按左软件选项按钮,弹出POP菜单窗口显示流程:
3、Mp3播放文件流程图:
4、播放文件暂停流程图:
五、简述部分功能实现原理:
1、文件播放功能:
判断播放列表中要播放的那个文件名在存储卡中是否还存在该文件,如果存在,则LoadOneFileInfoFromMp3List,打开Audio文件进行播放,播放完之后关闭该文件。 2、切换下一首(前一首)功能:
在当前Mp3播放的列表中对正在播放Audio文件指针进行加减操作,不过播放下一首(或者前一首)时都要做一个判断,如果已经为最后一首(或者第一首)时,立即切换为第一首(或者最后一首);如果在列表之间,只要在正在播放的地址指针加1(减1)即可。 3、快进(和快退)以及复读功能:
定义TP进度条,以显示Audio文件播放进程,当接触到进度条上一个新的为止时,Tp把该地址转化成变量is_tp_progress,再从该地址变量开始重新播放Mp3即可。 由此可以得知,同样在一个时刻点击复读,程序记录下改点的地址,不影响播放,当第二次点击复读,系统记录下第二个地址,并切换回第一个地址开始播放,到第二个地址结束,由此循环,达到复读的功能。
本文档为【Mp3模块简要介绍】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。