This commit is contained in:
1AoB 2024-04-21 23:46:06 +08:00
parent 81496659f0
commit 1f66652fd4

View File

@ -25,17 +25,12 @@ This article offers a sample of basic Markdown.
核和根文件系统。应用层使用开源库 madplay 作为音频的编解码工具,采用父、
子、孙三个进程来控制音乐的播放。通过按键实现切歌、调节音量、暂停等功能。
后台阿里云服务器是一个公网服务器用的C++语言,可以实现 APP 数据的
转发。因为服务器要同时处理多个客户端,所以选择了使用开源高并发框架
libevent 来实现。服务器还加入了链表的功能,记录 APP 和音箱的绑定关系。
APP 用 Qt 实现,主要负责往服务器发送控制指令,包括切歌、调节音量、
播放模式、定时播放、语音控制等等
转发。因为服务器选择使用开源高并发框架libevent 来实现。服务器还加入了链表的功能,记录 APP 和音箱的绑定关系。
APP客户端 用 Qt 实现,主要负责往服务器发送控制指令,包括切歌、调节音量、
播放模式、语音控制等等,然后服务器再转发给音箱
## 2、为什么会做这么一个项目
这个项目是从小米小爱音箱找到的灵感,当时看到这个音箱觉得挺好玩的,
正好学校有个嵌入式系统的比赛,然后就研究了一下这个项目的架构,而且我觉得
大学里面学的知识点都比较零散,大一学过 C 语言、大三学过操作系统,我就想利
用这个项目把它们结合起来,提高一下自己的编码能力,所以就实现了音箱、服务器和
APP。
这个项目是从小米的小爱音箱找到的灵感,我们的毕业设计要求使用开发板,当时有两种选择:一种是stm32开发板,一种是Linux开发板,我更喜欢Linux然后就研究了一下这个项目的架构,就觉得mini2440开发板比较合适而且我觉得用这个项目把我基本上所有学到得的东西都结合起来了,有c和c++编程,还有Linux操作系统以及qt开发等所以就实现了arm音箱、c++服务器和qtAPP客户端。
## 3、服务器端为什么选择 C++,和使用 C 语言有什么区别?
这个就涉及到了 C 和 C++的区别。C 语言更多的用于底层或者操作系统的
开发,服务器端开发更适合选择 C++。因为服务器端的代码逻辑一般比较复