admin管理员组文章数量:1531662
1、MediaPlayer.pro
#-------------------------------------------------
#
# Project created by QtCreator 2023-10-12T09:15:53
#
#-------------------------------------------------
QT += core gui
QT += multimedia
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MediaPlayer
TEMPLATE = app
SOURCES += main.cpp\
mediaplayerwidget.cpp
HEADERS += mediaplayerwidget.h
FORMS += mediaplayerwidget.ui
2、头文件mediaplayerwidget.h
#ifndef MEDIAPLAYERWIDGET_H
#define MEDIAPLAYERWIDGET_H
#include <QWidget>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QFileDialog>
#include <QMessageBox>
namespace Ui {
class MediaPlayerWidget;
}
class MediaPlayerWidget : public QWidget
{
Q_OBJECT
public:
explicit MediaPlayerWidget(QWidget *parent = 0);
~MediaPlayerWidget();
private slots:
void on_AddPushButton_clicked();
void on_PlayAndStopPushButton_clicked();
void on_UpPushButton_clicked();
void on_DownPushButton_clicked();
void on_VolDial_valueChanged(int value);
void on_MediaplayListWidget_currentRowChanged(int currentRow);
void currentMediaChangedSlot(const QMediaContent &item);
void currentdurationChangedSlot(qint64 duration);
void horizontalSliderPositionChanged(qint64 Position);
void on_horizontalSlider_sliderPressed();
void on_horizontalSlider_sliderReleased();
void on_horizontalSlider_valueChanged(int value);
private:
Ui::MediaPlayerWidget *ui;
//播放器对象指针
QMediaPlayer * MediaPlayer;
QMediaPlaylist * MediaPlaylist;
bool playSataFalge;
bool SliderPFlage;
};
#endif // MEDIAPLAYERWIDGET_H
3、主函数main.cpp
#include "mediaplayerwidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MediaPlayerWidget w;
w.show();
return a.exec();
}
4、源文件mediaplayerwidget.cpp
#include "mediaplayerwidget.h"
#include "ui_mediaplayerwidget.h"
#include <QDebug>
MediaPlayerWidget::MediaPlayerWidget(QWidget *parent) :
QWidget(parent),playSataFalge(false),SliderPFlage(false),
ui(new Ui::MediaPlayerWidget)
{
ui->setupUi(this);
MediaPlayer = new QMediaPlayer(this); //实例化播放器对象
MediaPlaylist =new QMediaPlaylist(this); //实例化歌单对象
MediaPlayer->setPlaylist(MediaPlaylist); //音乐播放器设置歌单
MediaPlaylist->setCurrentIndex(0); //初始状态
MediaPlayer->setVolume(50);
ui->VolDial->setValue(50);
connect(MediaPlayer,SIGNAL(currentMediaChanged(const QMediaContent &)),this,SLOT(currentMediaChangedSlot(const QMediaContent &)));
connect(MediaPlayer,SIGNAL(durationChanged(qint64)),this,SLOT(currentdurationChangedSlot(qint64)));
connect(MediaPlayer,SIGNAL(positionChanged(qint64)),this,SLOT(horizontalSliderPositionChanged(qint64)));
}
MediaPlayerWidget::~MediaPlayerWidget()
{
delete ui;
delete MediaPlayer;
}
//添加歌单
void MediaPlayerWidget::on_AddPushButton_clicked()
{
QStringList MP3files = QFileDialog::getOpenFileNames(this,"选择音乐文件",".","音乐文件 (*.mp3 *.mp4 *.MP3)");
for(int i =0;i<MP3files.count();i++)
{
MediaPlaylist->addMedia(QUrl(MP3files.at(i)));
ui->MediaplayListWidget->addItem(MP3files.at(i));
}
}
void MediaPlayerWidget::on_PlayAndStopPushButton_clicked()
{
if(!MediaPlaylist->isEmpty())
{
if(!playSataFalge)
{
MediaPlayer->play();
playSataFalge = true;
ui->PlayAndStopPushButton->setText("停止播放");
}
else
{
MediaPlayer->stop();
playSataFalge = false;
ui->PlayAndStopPushButton->setText("播放音乐");
}
}
else
{
QMessageBox::warning(this,"播放器警告","歌单中未有音乐无法实现播放,请添加音乐");
}
}
void MediaPlayerWidget::on_UpPushButton_clicked()
{
MediaPlaylist->previous();
}
void MediaPlayerWidget::on_DownPushButton_clicked()
{
MediaPlaylist->next();
}
void MediaPlayerWidget::on_VolDial_valueChanged(int value)
{
MediaPlayer->setVolume(value);
}
//list窗口进行单击选择
void MediaPlayerWidget::on_MediaplayListWidget_currentRowChanged(int currentRow)
{
if(currentRow < ui->MediaplayListWidget->count())
MediaPlaylist->setCurrentIndex(currentRow);
}
void MediaPlayerWidget::currentMediaChangedSlot(const QMediaContent &item)
{
//统计当前歌曲的时长
}
//持续时间改变
void MediaPlayerWidget::currentdurationChangedSlot(qint64 duration)
{
ui->horizontalSlider->setMaximum(duration);
}
void MediaPlayerWidget::horizontalSliderPositionChanged(qint64 Position)
{
if(!SliderPFlage)
{
ui->horizontalSlider->setValue(Position);
}
}
void MediaPlayerWidget::on_horizontalSlider_sliderPressed()
{
SliderPFlage=true;
}
void MediaPlayerWidget::on_horizontalSlider_sliderReleased()
{
SliderPFlage=false;
MediaPlayer->setPosition(ui->horizontalSlider->value());
}
void MediaPlayerWidget::on_horizontalSlider_valueChanged(int value)
{
}
5、mediaplayerwidget.ui
ui设计图
6、运行主界面
7、点击添加音乐并选择音乐文件
8、此时可以播放音乐并可以调节音量
版权声明:本文标题:使用Qt编写一个简易的音乐播放器 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1725773756a1041691.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论