Nplus实验室 发表于 2019-11-16 11:00:15

百灵鸽丨随身MP3(上)

本帖最后由 Nplus实验室 于 2019-12-4 09:14 编辑

小小掌控,无限智造。大家好,这是N+频道,我是播报员小何。自从鸽子出道以来,它动听的歌声就被大家关注着。朱现伟老师总结出了与这位网红“套近乎”的方式:让鸽子开口唱起来-1:https://www.labplus.cn/posts/5dcc1f2c8591053bbed5b013让鸽子开口唱起来-2:https://www.labplus.cn/posts/5dcc25388591053bbed5b019掌握正确的方式,鸽子可是平易近人的噢。

听歌一时爽,一直听歌一直爽。记得我小学的时候,用mp3听歌可是一件非常潮流、非常酷的事情。随着科技的发展,mp3、mp4都已经淡出了时代的舞台。今天我们一起用掌控板和百灵鸽制作一个mp3随身听,踏上时光之旅,拾忆……https://v.qq.com/x/page/l30216r1hti.html
Step1 添加播放/停止键
       这一功能实现起来并不难,添加两个判断:如果P键被触摸,播放音频;如果N键被触摸,音频停止。Step2 用A/B键控制上/下一首
       这个功能意味着,要存储好多首歌曲的MP3地址及歌曲名称,并且地址与名称要能够对应起来。这时候我首先想到了用字典来保存,因为字典的“键”和“值”刚好是一一对应的关系。数据储存确实很一目了然,下一步就要调用了。可是我眉头一皱,发现事情好像并不是那么简单。       现在只使用A/B键,设想的方案应该是:通过A/B键控制序号的增/减,通过序号可以找到歌曲地址和对应的歌曲名称。然而字典这个数据类型是无序的,如果我想调用某一个“值”,那我必须输入对应的“键”。总结:不适用,白忙活,果然万事开头难,不气馁,擦干泪水继续冲。       Python中有序的数据类型有:列表、元组、字符串。字符串是以每一个字符作为一个元素,歌曲名称和歌曲地址都是多字符组成的,所以pass掉字符串。       剩下列表和元组,二者的区别在于,列表是开源的,可以添加修改删除;元组是闭源的,只能进行访问。       因为歌曲的编辑是在编程时完成的,所以使用二者并没有区别。秉承着开源造万物的精神,就是你了,列表!
       需要新建两个列表:name和song,一个序号变量:x注意两个列表的顺序要对应,列表序号从0开始。那么接下来的播放及显示歌曲名称要改为:加上A/B键控制:刷入运行,下面就是见证奇迹的时刻!Emmm,好像出现不少问题:1、 按A/B键歌曲不切换,再按下P键才切换2、 歌曲切换时,歌曲名称不更新。3、 最后一首后没有循环回第一首
还真是万事开头难,后面一直难……Step3 解决问题       伟大的毛主席曾经说过:方法总比问题多。Question1:按A/B键歌曲不切换,再按下P键才切换    分析:A/B键只改变了歌曲序号,并没有重新播放歌曲。
    改进:刷入测试,成功!Question2:歌曲切换时,歌曲名称不更新
    分析:程序缺少重复刷新屏幕    改进:    这里我计算了下歌曲名称的X坐标,让歌曲名称自动居中    刷入测试,成功!成功!Question3:最后一首后没有循环回第一首,并且报错。
       分析:      控制台提示是96行出错,错误类型是IndexError(索引错误):listindex out of range。意思就是列表的序号超出范围。
       96行的代码:      是与显示歌曲名称相关的。A/B键增/减序号时,由于没有限制,把序号超过列表索引最大值或最小值。
       改进:    注意:序号最小值为0,列表长度最小值为1,两者要对应起来,所以列表长度要-1       刷入测试,成功!成功!成功!       至此,大问题都已经解决,百灵鸽随身听基本能够正常使用。可是我贼心不死,掌控板有三轴加速度传感器这么酷炫的东西怎么能不用上?继续撸起袖子干Step4 甩动切换歌曲       苇蓬疏薄漏斜阳,天色晚,饥乏交迫,请看下一篇详解,嘻嘻(厚脸皮)

gada888 发表于 2019-11-25 14:40:51

好贴

zhangxunyu9876 发表于 2020-1-17 16:24:01

注意:序号最小值为0,列表长度最小值为1,两者要对应起来,所以列表长度要-1
       刷入测试,成功!成功!成功!
       至此,大问题都已经解决,百灵鸽随身听基本能够正常使用。可是我贼心不死,掌控板有三轴加速度传感器这么酷炫的东西怎么能不用上?继续撸起袖子干
Step4 甩动切换歌曲
       苇蓬疏薄漏斜阳,天色晚,饥乏交迫,请看下一篇详解,嘻嘻(厚脸皮)

zhangxunyu9876 发表于 2020-1-17 16:24:03

注意:序号最小值为0,列表长度最小值为1,两者要对应起来,所以列表长度要-1
       刷入测试,成功!成功!成功!
       至此,大问题都已经解决,百灵鸽随身听基本能够正常使用。可是我贼心不死,掌控板有三轴加速度传感器这么酷炫的东西怎么能不用上?继续撸起袖子干
Step4 甩动切换歌曲
       苇蓬疏薄漏斜阳,天色晚,饥乏交迫,请看下一篇详解,嘻嘻(厚脸皮)

gada888 发表于 2020-1-23 13:35:53

支持中文字库,挺好
页: [1]
查看完整版本: 百灵鸽丨随身MP3(上)