赞
踩
一,系统功能
(1)暂停、播放音乐
(2)上、下切换音乐
(3)滑动调节音量
(4)定时切换名人名言
(5)显示时间(年月日,时分秒,周几)
注:效果图如下
二,项目涉及:
2,QMediaPlayer
3,QMediaPlaylist
4,QTimer,
6,Ui设计
三,UI部分
1,整体布局
2,布局嵌套
3,对象嵌套
4,stackedWidget内部
四,附源代码
1,获取源码:
https://pan.baidu.com/s/1SiUBDndmOCdH-SyF_6L0pA?pwd=l64l
提取码:l64l2,关键代码(music.cpp)
- #include "music.h"
- #include "ui_music.h"//ui界面设计
- #include"QPushButton"//按钮头文件
- #include"QMediaPlayer"//音视频播放器头文件
- #include"QMediaPlaylist"//媒体文件头文件
- #include<QTimer>//计时器头文件
- #include<QDateTime>//时间的头文件
-
-
- Music::Music(QWidget *parent):
- QWidget(parent),
- ui(new Ui::Music)
- {
- ui->setupUi(this);
-
-
-
- //新建播放器
- QMediaPlayer *player = new QMediaPlayer;
- //新建音乐列表
- QMediaPlaylist *list = new QMediaPlaylist;
-
- //添加音乐列表,把喜欢的歌曲添加到此处,直接从资源文件里面复制地址
- list->addMedia(QMediaContent(QUrl("qrc:/res/Taylor Swift - Love Story.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/Catch_My_Breath-Kelly_Clarkson-14312722.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/暗号-周杰伦-235497.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/华晨宇 - 好想爱这个世界啊.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/바빠-Sistar-19511203.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/Joysaaaa - 也许(1).mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/红色高跟鞋-《爱情左右》电影主题曲-蔡健雅-450444.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/Try-Colbie_Caillat-5746692.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/Need_You_Now-Lady_Antebellum-40963108.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/喜欢你-《澳门风云3》电影插曲_《摆渡人》电影插曲-Beyond-79090.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/开往早晨的午夜-张碧晨-15193825.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/稻香-周杰伦-440613.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/爱的飞行日记-周杰伦_杨瑞代-728668.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/指纹-杜宣达-197876799.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/Maren Ord - Perfect.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/我们的明天-《重返20岁》电影主题曲-鹿晗-6215461.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/敢爱敢做-《神奇两女侠》电影主题曲-林子祥-55216442.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res2/We_Can't_Stop-Miley_Cyrus-3386415.mp3")));
- list->addMedia(QMediaContent(QUrl("qrc:/res/一路生花-温奕心-162582615.mp3")));
- list->setPlaybackMode(QMediaPlaylist::Loop);
-
- player->setPlaylist(list);//选择播放列表
- player->setVolume(10); //设置初始音量
-
- //播放 暂停 键功能的实现
- connect(ui->btn2,&QPushButton::clicked,[=](){
- switch (player->state())
- {
- //如果是播放状态 则暂停, 否则播放
- case QMediaPlayer::PlayingState:
- player->pause();
- break;
- default:
- player->play();
- break;
- }
- });
-
- //上一曲 按键功能的实现
- connect(ui->btn1,&QPushButton::clicked,list,[=](){
- int t=list->currentIndex();
- if(--t<0) //t自减
- t=0;//如果已经是第一曲,则保持
- list->setCurrentIndex(t);//设置为当前指数
- player->play();//设置完成 开始播放
- });
-
- //下一曲 功能实现和上一曲类似
- connect(ui->btn3,&QPushButton::clicked,[=](){
- int t=list->currentIndex();
- if(++t==list->mediaCount())
- t=0;
- list->setCurrentIndex(t);
- player->play();
- });
-
- //音量调节
- connect(ui->yl,&QSlider::valueChanged,[=](){
- int vaule=ui->yl->value();//用QSlider滑动条 调节音量
- player->setVolume(vaule); //重新设置音量
- });
-
-
- QTimer *shijian = new QTimer(this);
- shijian->start(0);//使用定时器信号槽,尽快更新时间的显示
-
- connect(shijian,&QTimer::timeout,[=](){
- QDateTime time = QDateTime::currentDateTime();
- //显示时间,格式为:年-月-日 时:分:秒 周几
- QString StrCurrentTime = time.toString("yyyy/MM/dd | hh:mm:ss | ddd");
- //时间显示格式可自由设定,如hh:mm ddd 显示 时:分 周几
- ui->time->setText(StrCurrentTime);//调用ui文本框 用于放置当前时间
- });
-
- QTimer *shi = new QTimer(this);
- shi->start(8000);//8000ms切换一次悬浮着的优美文案
- Music::i=0; //给Music类成员变量赋初值 用于控制stackedWidget的翻页
- connect(shi,&QTimer::timeout,[=](){
- ui->stackedWidget->setCurrentIndex(Music::i++);//stackedWidget实现翻页
- if(Music::i==20)
- Music::i=0;//循环使用文案句子,只有20页,可以依据自己的喜好增减
- });
-
- }
-
- Music::~Music()
- {
- delete ui;
- }
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。