• 音乐播放器开发实例(可毕设)


    一、开发基础

              最近很多大学生都快毕业了在整理毕业论文以及毕业作品,其实在大三的时候就可以开始考虑了并且可以提前和自己的导师进行沟通,让自己的作品直接成为论文选题,在国产操作系统上开发一个简易音乐播放器是一个不错且高大上的题目吧?(我大学的时候就是这样,在大三时我的毕业设计就已经做好了,然后我给老师说修改一下论文的可选题目,老师就帮我添加我的题目为论文选题),看了看粉丝发来的毕业设计题目,开发了一个简单的音乐播放器(国产操作系统)。

             大部分的毕业题目通常是XXX管理系统,音乐播放器开发所需要的知识点比XXX管理系统要多一些,他会涉及到网络通信,SSL协议,数据库管理,文件读写,多媒体播放,多线程以及线程池,设计模式等相关知识点,看完这篇文章希望,你能自己动手做一做一个简单音乐播放器。

    二、软件设计

            软件设计一般都是基于需求进行的,在开发或者设计软件之前一定要先了解需求。尤其是在工作中,需求一般由产品经理下发,需要充分理解需求后才开始开发(磨刀不误砍柴工)。我们公司比较人性的一点在于,并不是产品经理提出的需求就一定是合理,需要经过技术评估,测试评估(从用户、技术、运维等多方面考虑需求的合理性)。如果你在开发的时候一直在吐槽需求的合理性,那么只有两种可能。1、你在公司啥都不是。2、 你是个啥,但是你不了解客户。 

    2.1 需求

            1、 开发一个音乐播放器,能够通过关键词搜索到相关歌名或歌手的歌曲,歌曲在列表中展示,列表一页展示20条,展示不了需要翻页,可以通过输入数字进行页码条状

            2、可以下载自己感兴趣的歌曲,在本次或下次打开的时候可以直接播放下载完成的歌曲。

            3、 可以控制音乐的播放进度,暂停和播放音乐,点击上一首和下一首歌曲进行切换。

            4、 可以控制音乐的音量。

    设计界面如下:

     

    2.2 概要设计

    框架设计图如下图:(其实大部分)

     模块说明

    UI模块:包含搜索界面以及播放界面两个部分。

    数据库模块:用户存储本地数据库,将其作为缓存数据,防止重复的网络下载等。

    网络模块:用于处理网络请求,包括接口访问以及请求。

    本地文件:本地文件读写,文件下载完成后保存与本地。进行缓存,当播放时直接读取本地文件进行播放。

    三、开发准备

            在国产操作系统中开发软件,我推荐使用QT进行开发,当然读者也可以选择自己喜欢的开发库。

            3.1 操作系统安装

                    点击:国产统一操作系统uos怎么安装?uos操作系统安装步骤

            3.2 QT安装

                   点击: 安装QT开发环境

            3.3 依赖库安装

                 依赖openssl,涉及到https网络访问,因此需要安装openssl的开发库文件,安装命令如下:

    sudo apt install libssl-dev

    四、模块详解

    4.1 UI界面

    UI目录结构

     

    4.2 数据库

    数据库表设计如下:

    由于小型数据库,因此没有设置索引等。

    字段类型备注是否必填
    idint自动增加
    namechar(50)音乐名称
    pathchar(255)本地路径
    imgchar(255)音乐封面图
    urlchar(255)网络路径
    ridchar(100)网络标识ID
    remarkchar(100)备注
    create_timeint插入时间戳

    4.3 网络

    网络模块提供两个重要接口。

    1 .API接口说明:在线音乐播放器接口

    2. 文件下载。

    五、源代码

    源码地址: 啊渊 / QT博客案例

  • 相关阅读:
    001. 变量、环境变量
    GIt快速入门(一文学会使用Git)
    docker jenkins
    springboot学习笔记
    如何设计一个短地址服务
    Python控制结构之for循环I
    QT常用的控件总结
    opencv stereoCalibrate/stereoRectify/StereoSGBM_create函数参数解析
    Java安全入门笔记(持续更新)
    Vue3中diff算法的优化和乱序比对的实现-详细步骤(包看包会)
  • 原文地址:https://blog.csdn.net/arv002/article/details/125155533