Ski 发表于 2022-6-6 13:30:22

【回忆杀】王心凌——爱你 音乐播放器

## 灵感来源


前几天女朋友在观看某综艺节目时,儿时女神王心凌现身,身着白色校园制服演唱一首《爱你》,一波回忆杀,瞬间把我带回了孩童时代。
    趴在教室的课桌上,耳中传来:

    “如果你突然打了个喷嚏
    那一定就是我在想你....”
长大以后,总是在回忆过去,而音乐可以帮我们快速地找到当年的感觉,于是决定制作一款MP3播放器,一起回到那个夏天。

## 效果预览








https://www.bilibili.com/video/BV1Ut4y1n7pd/


## 功能介绍

参考了一些网上关于音乐播放器的示例,除了基础的音乐播放功能,还需要设计一个交互界面,实现简单的交互控制。

## 工具准备

## 硬件

   这里选择带有交互屏幕的行空板作为主控,考虑到手上没有线控喇叭,播放设备选择使用蓝牙音箱。

## 软件
* Mind+
* MobaXterm(或其他屏幕共享工具)

    上述软件使用教程可移步[行空板教程](https://wiki.unihiker.com/)进行查阅。


## 功能实现

### 文件准备

1.首先先在行空板文件系统中创建项目文件,这里需要有音乐文件、UI图片和程序代码。


![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/110936e3i9zi5lv2n2hfiw.png)


2.将下载好的音乐文件(MP3、wav、ogg皆可)放入音乐文件夹中。

![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/115540i3kjwi21ebzg2kkz.png)
3.添加一张喜欢的图片作为交互界面的背景


![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/115131yeqbefhh7qwbtdhq.png)

### 蓝牙配对

1.通过命令行进入行空板进入蓝牙配置

* ssh root@10.1.2.3
* password:dfrobot

![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/111122erkpz00bbxp02sbb.png)

2.依次键入以下指令,打开行空板蓝牙功能

* bluetoothctl
* default-agent
* power on

![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/111131awrr464m5ci6fsm5.png)

3.开启蓝牙音箱,设置配对模式

4.键入以下指令,扫描蓝牙音箱设备ID,找到并记录蓝牙设备的device ID

* scan on

![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/111146a2p65bnf6p5bltba.png)

* 注意:若身边蓝牙设备较多,可以搜索1分钟后,使用scan off命令 停止搜索,然后使用devices命令列出所有扫描到的设备,或者可尝试使用蓝牙助手扫描获取device ID

5.依次键入以下命令,进行设备配对

* trust xx:xx:xx:xx:xx:xx (Device ID)
* pair xx:xx:xx:xx:xx:xx(Device ID)
* connect xx:xx:xx:xx:xx:xx (Device ID)

![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/111202d4ukp3muu5oafini.png)

6.配对完成,退出设置

* exit



### 程序实现

1.交互界面——tkinter

   可根据需要设置一些按键组件,实现简单的交互功能。
         ![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/115307sidd4ddfdfwiidwd.png)

2.音频播放——pygame

音乐功能使用Pygame中的(https://blog.csdn.net/qq_41556318/article/details/86305046)用法,包含对音乐的播放控制。

3.代码节选:

```Python
    def play():#播放
    global play_num
    global playing
    global flag
    global skip
    if len(mucic_dir):
      pre = 0
      while playing:
            if not pygame.mixer.music.get_busy():
                if flag:
                  if not skip:
                        play_num = pre
                skip = 0
                next_music = mucic_dir
                pygame.mixer.music.load(next_music.encode())
                pygame.mixer.music.play(1)
                musicName.set("正在播放:"+music_name)
                pre =play_num
                if len(mucic_dir)-1 == play_num:
                  play_num = 0
                else:
                  play_num = play_num + 1
            else:
                time.sleep(0.1)
```


### 设置启动运行

1.在行空板中打开应用开关

![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/111220yqbfhfb1bpqjey6f.png)

2.单击开机自启,打开开机启动功能

![](https://imagemc.dfrobot.com.cn/data/attachment/album/202206/06/111231kggkprrrpsqkqoro.png)


## 参考链接
* [本地音乐播放器](https://blog.csdn.net/qq_37521566/article/details/112393898)
* [行空板官方教程](https://wiki.unihiker.com/)
* (https://blog.csdn.net/qq_41556318/article/details/86305046)




Storm 发表于 2022-6-6 13:49:57

老铁666!

木子呢 发表于 2022-6-6 14:26:21

老铁666!

hnyzcj 发表于 2022-6-6 15:02:00


老铁666!

千千老师 发表于 2022-6-6 18:21:48

six six six

R2D2 发表于 2022-6-6 21:43:11

6666

春秋大仙 发表于 2022-6-9 00:17:45

哈哈哈,诚意还不够啊,说好的唱 爱你 呢

zhouzhuofeng 发表于 2022-6-9 09:17:26

楼主厉害,顺便弄一首 爱你吧

Ski 发表于 2022-6-13 11:29:36

春秋大仙 发表于 2022-6-9 00:17
哈哈哈,诚意还不够啊,说好的唱 爱你 呢

确实搞个桌面版唱吧{:7_220:}

552001605 发表于 2023-10-20 11:15:50

老铁666,求项目源码

552001605 发表于 2023-10-20 11:17:05

老铁666,求项目源码 552001605@qq.com 急需,谢谢了

jingdn 发表于 2024-5-23 08:35:49

连接了蓝牙音箱,但是出不了声音

网络白丁 发表于 2024-6-5 09:23:51

学习了,很赞的
思路
页: [1]
查看完整版本: 【回忆杀】王心凌——爱你 音乐播放器