Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

whatever098/MusicPlayer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

开发环境:基于MSVC2017,QT5.9.3

一.项目设计

环境说明:(一般无需配置,如果无法运行可以尝试,记得替换为自己的路径)

1.项目->属性->VC++目录->

包含目录:D:\qt5円.9.3\msvc2017_64\include;$(IncludePath)

库目录:D:\qt5円.9.3\msvc2017_64\lib;$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)

2.项目->属性->C++->常规

附加包含目录:D:\qt5円.9.3\msvc2017_64\include

3.项目->属性->链接器->输入

Qt5Multimediad.lib Qt5Cored.lib Qt5Networkd.lib Qt5Widgetsd.lib Qt5Sqld.lib

4.vs_2019 x64 Debug Qt5.9.3

使用MVC(Model-View-Controller)设计模式

1.模型(Model):

音乐播放引擎(Music Engine):

负责处理音乐的播放、暂停、切换、进度调节等功能。使用Qt的QMediaPlayer或其他适合的多媒体库作为底层实现。

音乐库管理(Music Library):(单例)

维护在线音乐资源的列表信息,负责在线音乐的获取、存储和管理。可以涵盖歌曲信息、歌词、专辑图片等元数据。

本地缓存管理(Local Cache):

处理本地音乐缓存和播放,负责缓存的存储、读取和删除。

2.视图(View):

播放器界面(MusicPlayerUI):

实现用户界面,展示音乐播放器界面的各种控制按钮、进度条、专辑图片、歌词显示等。

歌词控制显示界面(LyricWidget):MusicPlayerUI的成员

控制歌词更新并递交到ui层,与MusicPlayerUI使用同一个ui,MusicPlayerUI将ui指针传递给LyricWidget避免多次构造

音乐列表视图(MusicListWidget)

处理歌曲列表的显示和递交点击信号,同时显示和处理搜索信号

主窗口(MainWindow)

显示主窗口,负责托盘最小化

3.控制器(Controller):

音乐播放控制器(MusicPlayerController):

监听用户界面的交互事件,将这些事件转发给模型层来处理,例如播放、暂停、切换歌曲等操作。

二.功能实现

  • 支持 MP3 格式音乐播放
  • 支持基本的播放控制功能,如播放、暂停、上一曲、下一曲
  • 支持在线音乐播放,通过 HTTP 请求获取音乐资源
  • 支持歌词自动匹配并显示
  • 支持专辑图片自动匹配并显示
  • 支持音量调节、静音功能。
  • 支持播放进度显示,时间显示
  • 支持歌曲切换
  • 支持拖动进度条调整进度
  • 支持专辑图片动画,在播放时可同步旋转
  • 支持本地音乐缓存与播放
  • 支持 MP3 以外的格式播放,WAV、FLAC、AAC
  • 支持播放模式选择,顺序播放、单曲循环、随机播放
  • 支持最小化托盘,并可以在系统托盘处退出程序
  • 对于没有严格文件目录格式的音乐可以识别并播放,即对于任意localcache文件夹中代码已写的音乐格式的音乐,都能识别并播放而且是迭代识别,代表在localcache目录下新建任意深度目录存放音乐,都能识别并播放,例如新建文件夹my_like,在其中存放几首音乐,能够获取音乐斌播放,不需要严格的目录结构和music.json等。
  • 静音后取消静音恢复原有音量
  • 数据库存储音乐信息,支持多线程
  • 可查看当前播放列表以便知晓播放顺序

About

an online musicplayer base c++11

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /