目录
前言
一、逻辑
二、操作步骤
三、其他
前言
在杰理的SDK中音乐模式下播放歌曲,已经做好了全部循环、单曲循环、文件夹循环播放以及随机播放等几种播放方式。但并未含有顺序播放(也叫列表播放,即按照顺序播放完整个文件夹中的最后一首歌曲后,便停止播放)的方式,需自行添加。
一、逻辑
根据功能需求,我们需添加相应的逻辑:若当前模式为顺序/列表播放,则在歌曲播放完毕后进行判定是否为最后一首,若为最后一首,则进行停止解码,从而停止播放。反之非最后一首则接着播放下一首。
二、操作步骤
- 开机默认播放模式:在我们使能开启音乐模式时,则在上电后系统会读取虚拟储存VM所存储的播放方式,用户可根据实际需求在user_cfg_new.c源文件中的cfg_file_parse( )函数中将播放模式标志位更改为所需的播放模式。
- 播放模式更改:在系统运行时,我们也可通过music_player_change_repeat_mode( )函数来切换更改音乐播放的方式。(在默认的SDK中由于没有顺序播放模式,故无法正常切换到顺序播放的方式,需将函数进行小修改)
修改方式如下:
- 逻辑判定:当设置好默认播放方式,以及将顺序/列表播放方式添加到循环切换播放模式中后,便可以在播放结束处理函数music_player_end_deal( )中的正常结束播放的处理中添加相应的逻辑:判定当前播放结束的是否为最后一首歌曲,且当前播放模式为顺序/列表播放。若都为真,则直接停止解码退出。反之则进行下一曲的播放。
三、其他
- 注意事项一:该修改的播放模式仅仅针对的是音乐模式下的播放方式(U盘或者TF卡的播放),对于蓝牙歌曲或者FM调频下的歌曲播放无作用。
- 注意事项二: 由于在播放完最后一首我们采取的是直接停止解码的方式,因此当我们的项目中存在需要显示的情况下,应在ui_music_main()显示主页面中对显示界面进行处理: