Bootstrap

音频设备事件处理2

music 设备事件响应接口:music_sys_event_handler
主要处理两类事件:
SYS_KEY_EVENT:按键事件,调用music_key_event_opr
SYS_DEVICE_EVENT:设备事件

设备事件主要处理设备拔出事件。
设备被拔出后,判断拔出的设备与当前播放的设备是不是同一个设备,是的话需要保存断点信息。停止文件解码,释放扫盘句柄。

music的key事件处理函数:music_key_event_opr
返回值:1表示事件处理完成,0表示事件还未处理
如果事件还未处理,事件消息将通过公共消息处理器进行处理。

按键消息类型:
KEY_MUSIC_PP,//播放或暂停
KEY_MUSIC_PREV,//播放前一个
KEY_MUSIC_NEXT,//播放下一个
KEY_MUSIC_FF,//快进
KEY_MUSIC_FR,//快退
KEY_MUSIC_PLAYER_START,//播放开始
KEY_MUSIC_PLAYER_END,//播放结束
KEY_MUSIC_PLAYER_DEC_ERR,//解码错误
KEY_MUSIC_DEVICE_TONE_END,//设备提示音结束
KEY_MUSIC_PLAYER_QUIT,//播放器退出
KEY_MUSIC_PLAYER_AUTO_NEXT,//自动播放下一个
KEY_MUSIC_PLAYER_PLAY_FIRST,//播放第一个文件
KEY_MUSIC_PLAYER_PLAY_LAST,//播放最后一个文件
KEY_MUSIC_CHANGE_REPEAT,//
KEY_MUSIC_CHANGE_DEV,
KEY_MUSIC_AUTO_NEXT_DEV,
KEY_MUSIC_CHANGE_DEV_REPEAT,
KEY_MUSIC_SET_PITCH,
KEY_MUSIC_SET_SPEED,
KEY_MUSIC_PLAYE_BY_DEV_FILENUM,//通过文件号
KEY_MUSIC_PLAYE_BY_DEV_SCLUST,//通过蔟播放
KEY_MUSIC_PLAYE_BY_DEV_PATH,//通过路径播放
KEY_MUSIC_DELETE_FILE,//删除文件
KEY_MUSIC_PLAYE_NEXT_FOLDER,//下一个目录
KEY_MUSIC_PLAYE_PREV_FOLDER,//上一个目录
KEY_MUSIC_PLAYE_REC_FOLDER_SWITCH,
KEY_MUSIC_PLAYER_AB_REPEAT_SWITCH,

播放时快进和快退:
KEY_MUSIC_FF:music_player_ff(3);
KEY_MUSIC_FR,:music_player_fr(3);
这里可以修改快进、快退的步进值,默认是3。

删除文件:

    case KEY_MUSIC_DELETE_FILE: //删除文件
        log_i("KEY_MUSIC_DELETE_FILE\n");
        err = music_player_delete_playing_file();//删除当前播放文件,并播放下一首
        break;

删除文件操作中进行了文件删除,并播放下一首。

int music_player_delete_playing_file(void)//music_player删除当前播放文件,并播放下一曲
{
   
//__this指music_player,即音乐播放器
    if (__this && __this->file) {
   //文件存在
        ///获取当前播放文件序号, 文件删除之后, 播放下一曲
        int err = 0;
        int cur_file = music_player_get_file_cur();//获取当前播放的文件
        char *cur_dev = music_player_get_dev_cur();//获取当前的设备
        
;