QT5音乐播放器
来源:互联网 发布:解矩阵方程ax b x 编辑:程序博客网 时间:2024/05/29 18:45
QT实现MP3音乐播放器
该MP3播放器实现了界面的美化,整个界面主要是一张背景图,是我用ps做出来的,还有每一个按钮都是先实例化一个按钮部件并用setGeometry()函数设置位置,然后设置按钮的背景,就实现了如上的效果。
先上图看看效果
。
下面看代码:
代码块
代码块语法遵循标准markdown代码,例如:
打开音乐void Music::addOnemusic(){ QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"),"/home",tr("music(*.mp3)")); if(!fileName.isEmpty()) { add = true;//判断是否成功打开音乐文件 } playList -> addMedia(QUrl::fromLocalFile(fileName));//将打开的音乐文件加入到播放列表 playList->setCurrentIndex(0); playList->setPlaybackMode(QMediaPlaylist::Loop);//设置播放模式 player -> setPlaylist(playList); message -> setText("成功添加1首音乐"); connect(timer2, SIGNAL(timeout()), this, SLOT(clearMessage())); timer2 ->start(5000);//5秒钟后将message的文本清空,即通知消失}void Music::addMoremusic(){ QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("打开文件"),"/home",tr("music(*.mp3)")); if(!fileNames.isEmpty()) { add = true;//同上 } for(int i = 0; i < fileNames.size(); i ++) { playList -> addMedia(QUrl::fromLocalFile(fileNames.at(i)));//将音乐文件逐一加入到播放列表 } playList->setCurrentIndex(0); playList->setPlaybackMode(QMediaPlaylist::Loop); player -> setPlaylist(playList); message -> setText(tr("成功添加")+fileNames.size()+tr("音乐")); connect(timer2, SIGNAL(timeout()), this, SLOT(clearMessage())); timer2 ->start(5000);//同上}播放和暂停功能void Music::playMusic(){ isplay = !isplay; if(!add) { QMessageBox::information(this,"添加音乐","请先添加音乐","确定"); } else { if(player -> state() == QMediaPlayer::PlayingState)//判断是否为播放模式 { //设置播放模式为暂停 player -> pause(); //改变播放按钮的背景图片 BtnPlay->setStyleSheet("QPushButton:!hover{border-image: url(:/image/play_hover.png);}" "QPushButton:hover{border-image: url(:/image/play_hover.png);}" "QPushButton:pressed{border-image: url(:/image/play_press.png);}" /*"QPushButton:focus{padding:-1;}"*/); } else { //否则设置播放模式 player -> play(); BtnPlay->setStyleSheet("QPushButton:!hover{border-image: url(:/image/pause_hover.png);}" "QPushButton:hover{border-image: url(:/image/pause_hover.png);}" "QPushButton:pressed{border-image: url(:/image/pause_press.png);}" /*"QPushButton:focus{padding:-1;}"*/); } } //判断暂停模式,改变播放时间 if(isplay) { connect(timer, SIGNAL(timeout()), this, SLOT(posChange())); timer->start(1000); } else { timer ->stop(); }}上一首和下一首void Music::preMusic(){ //上一首,并更新播放时间为0 moved = 0; playList ->previous();}void Music::nextMusic(){ //下一首,更新播放时间为0 moved = 0; playList->next();}设置音量connect(volumeControl, SIGNAL(sliderMoved(int)), this, SLOT(volumChange(int)));void Music::volumChange(int vol){ //关联滑块的移动,将值设置播放的音量 player -> setVolume(vol);}静音void Music::meteOpen(){ static bool flag=true;//判断是否已点击 if(flag){ //如果点下小喇叭,则改变小喇叭按钮的背景图像 muteButton->setStyleSheet("QPushButton:!hover{border-image: url(:/image/sound_close.png)}" "QPushButton:hover{border-image: url(:/image/sound_close.png)}" "QPushButton:pressed{border-image: url(:/image/sound_close.png)}" "QPushButton:focus{padding:-1;}"); muteButton->setToolTip(tr("打开声音")); player -> setMuted(true);//打开声音 }else{ muteButton->setStyleSheet("QPushButton:!hover{border-image: url(:/image/sound.png)}" "QPushButton:hover{border-image: url(:/image/sound.png)}" "QPushButton:pressed{border-image: url(:/image/sound.png)}" "QPushButton:focus{padding:-1;}"); muteButton->setToolTip(tr("关闭声音")); player -> setMuted(false);//关闭声音 } flag=!flag;}播放进度void Music::positionChange(qint64 position){ seekSlider->setMaximum(player->duration() / 1000);//设置滑块的长度范围为音乐长度 seekSlider->setValue(position / 1000);//如果音乐进度改变,则改变滑块显示位置}void Music::seekChange(int position){ player -> setPosition(position * 1000);//如果滑块改变位置,则改变音乐进度}connect(seekSlider,SIGNAL(sliderMoved(int)), this,SLOT(seekChange(int))); connect(player,SIGNAL(positionChanged(qint64)),this,SLOT( positionChange(qint64)));... prompt'''
脚注
该程序QT5.6版本编写的,windows7平台下运行,其他平台下运行可能会出现问题,有什么不足的地方请多多指教。
下面附上源代码:
链接:http://pan.baidu.com/s/1dE8yhln 密码:42yl
阅读全文
0 0
- Qt5音乐播放器
- QT5音乐播放器
- Qt5 + VS 2013 音乐播放器
- QT5简易音乐播放器的设计
- Qt5.8 QMediaPlayer 音乐播放器
- qt5.2音乐播放器的播放功能
- qt5.2音乐播放器的播放功能
- Qt5+VS 2013 Mediaplayer 音乐播放器 代码
- 自学QT之简易音乐播放器基于QT5.5
- android音乐播放器播放音乐卡
- Android 音乐播放 类似音乐播放器
- flash音乐播放器
- 常见音乐播放器
- WEB音乐播放器
- Google 音乐播放器
- 单片机音乐播放器
- 简易音乐播放器
- 网页音乐播放器
- 死锁
- Java学习路线图
- String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)
- 超详细注释的基于opencv3的Optical flow(光流点追踪)
- Java中的内部类03-内部类的作用
- QT5音乐播放器
- 136. Single Number
- VS2013编译Lua5.3.x源码
- late_initcall
- cents 6.5 安装mysql5.6
- Spring学习笔记2-IOC
- JavaScript基础知识总结
- spring的普通类中如何取session和request对像
- 学会Git玩转Github笔记(二)——Git使用