失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 教你用树莓派Python打造一个音乐播放器

教你用树莓派Python打造一个音乐播放器

时间:2022-09-02 12:17:10

相关推荐

教你用树莓派Python打造一个音乐播放器

买了个树莓派3B+,装好系统后灰落了好厚一层都不知道要干嘛。。。最近突发奇想:用树莓派做一个音乐播放器,每天6:30-7:20自动播放英语听力,强迫自己练习英语,也治治自己的懒床习惯,平时也可以用来听听歌。在这里顺便给大家推荐一个资源很全的python学习免非解答.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,这里有资深程序员分享以前学习心得,学习笔记,还有一线企业的工作经验,且给大家精心整理一份python零基础到项目实战的资料,每天给大家讲解python最新的技术,前景,学习需要留言的小细节

准备工作:

1.树莓派一个,并且己安装好linux系统,并且己安装好Python3环境;

2.音箱一个(AUX有线接口或蓝牙音箱都行),连接到树莓派上;

软件环境搭建:

mtool是一个用python写的音乐播放器,在gitee和github上开源,主要用命令行进行控制,这个很适合我们这个需求。

下载地址:/shadowlesswalker/mtool.git

首先我们在电脑上用ssh工具(我用的putty)登陆到树莓派,不会的可以另行百度树莓派ssh教程。输入以下命令:

cd /usr

git clone /shadowlesswalker/mtool.git mtool #下载mtool源代码

cd mtool

ln -s -f /usr/mtool/mtoolctl /usr/bin/mtool #创建软链接(快捷方式)

然后安装mtool依赖包:pygame,configparser(有的话就不用安装了)

sudo apt install python3-pygame

pip3 install configparser

至此,mtool就算安装完成了。mtool是一个C/S(服务器/客户端)模式的程序,服务器开启后会监听UDP端口(默认为127.0.0.1:6666),然后接受来自客户端的命令去控制播放。

我再来设置一下服务器端的开机自启动:

vim ~/.bashrc

在最后面添加命令:

nohup mtool --server start > /usr/mtool/log & #其中nohup与&用于后台运行程序

配置音乐文件夹路径

先来配置一下音乐文件夹的位置,打开/usr/mtool/mtool.conf,在里面自行修改:

[player] #这个节设置播放器参数

list = music #设置默认的播放列表,列表名必须在后面的playlists节中出现

volume = 0.2 #默认音量

port = 6666 #默认UDP端口,用于服务器接受命令

index = 2 #当前播放位置

next = next #默认播放模式:next|loop|random 对应顺序播放|单曲循环|随机播放

[playlists] #播放列表预设节,可设置多个,格式为:列表名=文件夹路径

music = music #播放列表名为music,路径为./music

en-listen = /var/share/en-listen #我的英语听力资源文件的路径

开始使用mtool命令

source ~/.bashrc

nohup mtool --server start > /usr/mtool/log &

#先手动启动服务端,虽然前面配置了开机自启动,但也只能下次开机才能生效

mtool -c info #查看服务器状态,可用来测试服务器是否己启动,成攻类似如下显示:

mtool -c play #播放

mtool -c vol=0.5 #设置音量

mtool -c lists #查看可用的播放列表

mtool -c list #列出当前播放列表中的音乐文件

mtool -c next=random|next|loop #设置播放顺序

mtool -c playf=zui #切换为单曲循环(next=loop),并且播放文件名中包含zui的文件

基本的用法就这样了,我们可以通过在电脑上控制树莓派播放音乐了,但是电脑老开着也不好,况且躺在床上怎么办呢?我们可以在手机上安装ssh工具,比如JuiceSSH(推荐),阿里云app。

设置树莓派定时播放

我们使用linux内置的计划任务命令crontab来设置定时播放功能。

说到定时任务,那我们首先得确认自己树莓派的时间是准确的。嘿嘿嘿。。。可惜,树莓派的时间一般都是不准确的。。。因为一般电脑在断电后时钟会由CMOS电池供电继续跑,但是树莓派断电后时间就会丢失。即然时间都不准确,又怎么能正常执行定时任务呢。。。

所以我们首先解决时间问题-NTP(网络时间同步)

dpkg-reconfigure tzdata#时区设置,配置文件在/etc/timezone,设置为中国上海时区

date#查看时间,确保我们的时区为中国时区

开启NTP服务

apt install ntp

ntpdate ntp.#同步中国国家授时中心新(NTP服务器ntp.)

或者在/etc/ntp.conf中添加ntp服务器地址

重启ntp服务:

systemctl enable ntp #ntp开机自启动

systemctl start ntp #启动ntp服务

date #查看系统时间,应该正确了

再来设置定时任务:

先写一个切换播放列表、改变音量、开时播放的脚本,用来被定时任务调用:

vim /usr/mtool/start-en-listen

脚本内容很简单:

_dir="/usr/mtool"

mtool -c playlist=en-listen #切换到英语听力播放列表

mtool -c vol=1.0#音量放到最大(嘿嘿嘿)

mtool -c next=random #设置随机播放

mtool -c play #开始播放

接下来添加定时任务

crontab -e #将打开编辑器,在最后添加定时任务:

30 6 * * * /usr/mtool/start-en-listen >> /usr/mtool/log.client #每天早上6:30开始播放

20 7 * * * mtool -c stop #每天早上7:20停止播放

终于。。。大功造成!!!!每天早上无法安心地睡懒觉啦啦啦,顺便给大家推荐一个资源很全的python学习免非解答.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,这里有资深程序员分享以前学习心得,学习笔记,还有一线企业的工作经验,且给大家精心整理一份python零基础到项目实战的资料,每天给大家讲解python最新的技术,前景,学习需要留言的小细节

当然,我们还可以添加几行代码,每天早上6:30自动关闭ssh服务,7:20再打开,这样想睡懒觉时就无法从手机ssh端关闭树莓派播放了,只能爬起来去拔电源嘿嘿嘿。。。。。

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

如果觉得《教你用树莓派Python打造一个音乐播放器》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。