import pygameimport timefile=['I Really Like You .mp3','四季予你.mp3']pygame.mixer.init()print(''' 欢迎来到迷你音乐播放器 ''')s=int(input(''' 曲库内共两首歌,请选择: 0:I Really Like You 1:四季予你'''))pygame.mixer.music.load(file[s])pygame.mixer.music.play()time.sleep(1000)pygame.mixer.music.stop()
那么接下来我们就一起来看看这段程序的代码吧:首先一二行我们就不多赘述了,我们说不论你需要用到标准库抑或是第三方库,绝大部分库都是需要先进性导库这一操作的,否则无法使用库里面的功能函数第三行代码是我们将所有音乐文件的名字全部写进了一个列表当中用列表储存起来但是这里有一点需要注意的是,我把音乐文件跟我们python文件放在了同一路径下,所以因此我不需要特地在音乐文件名前面特地加上它们的路径,当然这里加上也可以,但是需要知道的是,如果音乐文件没有跟python文件在同一路径下,那我们就必须规规矩矩的写上他的绝对路径否则后面我们加载音乐的时候是加载不出来的因为函数根本找不到你的音乐文件第四行代码,我们上面解释说是初始化混音器模块,说的很官方很术语化,实际上这个东西说好理解也挺好理解的,大家想象一下,就跟我们平常开电脑开手机一样,他都有一个初始化的过程再举个例子,就像我们早晨起床不想上班不想上学一样,感觉每天早起很痛苦,但是还是得起床,于是起床以后大概有个五到十来分钟都处于头脑发懵的状态,然后这段时间过去了就感觉,美好的一天开始啦而那段头脑发懵的时间就是你的大脑逐渐初始化的状态初始化过去了就可以正常使用了五到九行代码不说了,做了个很简陋的页面,大家复制粘贴就可以啦,当然如果各位同学有更好的想法可以自己再去美化一下第六到八行代码其实需要跟第九行代码连起来说,此话怎讲呢?首先input里面的话我就不讲了,但是他给用户传达的信息就是,你如果输入0,那么我就播放i really like you 如果你输入1,那我就播放四季予你所以不论用户输入0或者是1,都会被变量s所接收,那s接收后怎么用它呢?我们可以看到第九行代码,我们上面说过这行代码是接收文件路径的,因此在后面的括号里,我们要写上文件的路径,可是音乐文件的路径我们已经存放在一个名为file的列表里面了,这应该怎么弄?没关系,我们直接写上列表名和它的文件顺序就行了,但这里有一点要知道,我们列表当中数数是从0开始数的,因此我们可以看到,在我们列表当中虽然只有两首歌,但是第一首歌的顺序是0,第二首歌的顺序是1.也就是说,假如我想听第一首歌,那么按照常理来说,应该在load后面的括号里这样写:file[0]但是大家会发现一个问题就是我并没有在file后面的方括号里写数字,而是写了个字母s,而这个s就是我们刚才做的用来接收用户需求的变量,也就是说,我们把选择权交给了用户,用户想听哪首歌让用户自己去进行输入,我们只负责把用户输入的数据传送给s,再将s送进file后面的方括号内,这样的话电脑就会根据用户的需求去决定放哪首歌,而不是我们自己提前写一个数字放进去,这样的话电脑只会墨守成规的从第一首歌开始放起,一直到最后一首歌用户的权力就变小了那么第十行代码到第十二行代码各位同学可能感觉明白,但是又有点懵,我们知道第十行代码就是播放音乐,第十一行代码是让程序休眠1000秒钟,第十二行代码是暂停播放,但是貌似第十一行代码有点尴尬,为什么呢?人家播放完了暂停就完了,中间放个休眠1000秒就尴尬,其实并不是我们想象当中的那样,如果没有第十一行代码,用户输入完数字以后,可能还没播放就运行完了,这是因为第十行代码没有延续性,他不会检测到你一首歌有多久,所以他可能稍微象征性的播放0.0几秒,可能连声音都没听到就完了,因此我们为了能让整首歌放完,选用了休眠这个功能函数,让第十行代码能延续性的执行完这首歌在暂停好啦,这期的内容就到这里啦,我们下次再见咯(图片来源网络,侵删)
0 评论