完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前边的帖子增加了一个自己再次看过这些资料后的小功能没能实现!
经过这几天的debug发现是读取记录音乐文件路径的.TXT打开错误,导致读不到路径! 今天通过另外一种得以实现! 因此我尝试着做了如下改变 static void readFileListos(void){ NUM_OF_SONGS = 1; aos_msleep(10); aos_dir_t *dir = aos_opendir("/fatfs0/WAV"); aos_dirent_t *dp = NULL; do { dp = aos_readdir(dir); if (dp) { char songPath[200] = "file:///fatfs0/WAV/"; strcat(songPath, dp->d_name); if (NUM_OF_SONGS-1 == currentSong) { strcpy(tablePlay, songPath); } NUM_OF_SONGS++; } } while (dp != NULL); aos_closedir(dir);}直接读取文件夹里的音乐文件,通过计数的方式选择播放文件! 既然读取文件的方式变了,那么播放音乐的线程也要做一些对应的改变! static void play_thread(void){ while (true) { aos_msleep(1000);防止按键事件响应异常 //判断对话播放是否结束, if ((AUI_PLAYER_STOP== aui_player_get_state(MEDIA_MUSIC))&&(AUI_PLAYER_STOP== aui_player_get_state(MEDIA_SYSTEM))) { aos_msleep(6000);//防止打断语音对话,导致对话异常! if ((AUI_PLAYER_STOP== aui_player_get_state(MEDIA_MUSIC))&&(AUI_PLAYER_STOP== aui_player_get_state(MEDIA_SYSTEM))) { readFileListos(); aos_msleep(10); smtaudio_start(MEDIA_SYSTEM,tablePlay, 0, 1); //判断是顺序播放还是倒序播放 if(playNextCheck==0) { if(currentSong 在识别到下一首时,为顺序,识别到上一首时,为倒序!通过改变playNextCheck的值来实现! if(strstr(cmd, "上一首")){ playNextCheck=1;}if(strstr(cmd, "下一首")){ playNextCheck=0;}最后我们在main的添加如下代码: aos_msleep(6000);//等待联网成功app_aui_cloud_tts_run("主人 您好,我是宝拉宝拉",0); aos_msleep(2500);//等待播放完提示aos_task_new("PLAY", play_thread, NULL,4096);位置如下: 编译下载,跑题来看看! 这样的好处是在开机联网成功后就知道如何唤起设备! 默认是顺序: 再看看倒序: 基本的流程和预想一致!成功实现SD的音乐自动播放与切换! |
|
相关推荐
1 条评论
|
|
只有小组成员才能发言,加入小组>>
【平头哥Sipeed LicheeRV 86开发板试用体验】Waft初体验
15752 浏览 1 评论
13802 浏览 4 评论
【平头哥Sipeed LicheeRV 86开发板试用体验】四、烧写waft系统&搭建waft测试环境
19713 浏览 2 评论
59206 浏览 19 评论
【限时福利】加入芯片开发社区,领100G电子工程师资料大礼包
88437 浏览 121 评论
邀请函 | 3月2日 来上海参加平头哥“玄铁RISC-V生态大会”
823浏览 0评论
读书分享会 | 玄铁RISC-V处理器入门与实战电子书免费下载!
723浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 05:38 , Processed in 0.309036 second(s), Total 39, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号