QT5:C++实现基于Multimedia的音乐播放器(序)
2024-08-31 21:46:36
前段时间C++课设,决定做个播放器,于是参考了网上的代码后,做了个很简陋的音乐播放器(只写了MP3格式)出来,虽然功能甚少,但还是决定把过程记录一下。
成品如下图:
播放器功能:
- 上、下一首,音量控制
- 单曲和列表循环、随机播放模式
- 添加歌曲(因为懒,连删除歌曲都没写)
所用技术:QT5,C++。
整个程序继承QT的QWidget完成,界面用qss修饰(qss的语法和CSS几乎一模一样),整个播放器主要靠QT的multimedia来完成音乐解码和播放。QMediaplayer用于解析音频文件,QMediaPlaylist作为一个媒体播放列表,保存媒体的路径(没有写数据库来保存歌曲,只是读取本地路径),这个类也自带了播放模式。
QMediaPlaylist作为一个媒体播放列表,保存媒体的路径。
* 此类有一个函数,void setPlaybackMode(PlaybackMode mode),
* 而enum PlaybackMode { CurrentItemOnce, CurrentItemInLoop, Sequential, Loop, Random }
* 分别为播放一次,单循环,顺序,列表循环,随机播放。
按钮用QPushButton创建,加载外部资源通过qss来装饰按钮外观。
音量和音乐进度条用QSlider创建,音乐进度时间则是用QLabel(可以放置图片,文字等内容的一个类)和QTimer(定时器)来完成。
图片上的歌曲播放列表用QListWidget创建,通过QFileInfo分割本地路径获取歌名。本来想重写鼠标右键函数来添加、删除、播放歌曲的,但最终因为懒,没写。
最后放上播放器代码。
最新文章
- nginx+webpy配置
- MSDN Library for vs 2010安装及使用(MSDN Library)
- Codeforces Round #379 (Div. 2) C. Anton and Making Potions 二分
- 【转载】Extjs 中id与itemId的区别
- angularjs model.service vs provider vs factory?
- exports和module.exports的区别
- java开发3轮技术面+hr面 面经(MT)
- 创建第一个core项目(netCore学习笔记1)
- JS-数组操作3
- Day 4-10 logging模块
- 维护keepalived与mysql漂移脚本
- 解决maltab的中文和英文字体问题,中文乱码
- poj3261 Milk Patterns【后缀数组】【二分】
- 2018.09.25 bzoj1856: [Scoi2010]字符串(组合数学)
- Writing Genres 英文文章文体
- Spark Streaming和Kafka集成深入浅出
- 第一百六十三节,jQuery,基础核心
- word 2013如何从某一页开始插入页码
- HDU3746(KMP求循环节)
- 关于数字、数据处理的几个PHP函数汇总
热门文章
- Java 开源 CMS :magnolia
- CUDA学习,查看device性能参数
- 【一天一道LeetCode】#27. Remove Element
- Android下VideoView的研究
- Logistic Regression求解classification问题
- Cocos2D的OALSimpleAudio预加载音频
- 结合FireBreath在Chrome/FireFox的多进程模式下崩溃一例
- C语言之linux内核可变参实现printf,sprintf
- jvm内存查看与分析工具
- SharePoint2010 -- ECMAScript客户端模型简单示例