学完qt好几个月了,一直没做相关的项目巩固,这次分享10个qt相关的小项目来练练手。
基于qt的MP4视频播放器:
头文件主要有这几个:
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QVideoWidget>
#include <QGraphicsVideoItem>
#include <QFileDialog>
#include <QGraphicsScene>
如果添加显示无法找到库,在pro文件中加上:
ui界面如下图所示:
void MainWindow::on_openButton_clicked()
{
QString strCurrentPath = QDir::homePath(); //获取系统当前目录
QString strDlgTitle = "选择视频文件";
QString strFilter = "MP4 File(*.mp4);;All File(*.*)";// 打开视频文件过滤
QString strAllFiles = QFileDialog::getOpenFileName(this,strDlgTitle,strCurrentPath,strFilter);
if(strAllFiles.isEmpty())
{
QMessageBox::information(this,"错误","打开视频文件失败,请重新检查",QMessageBox::Yes|QMessageBox::No);
return;
}
QFileInfo fileInfos(strAllFiles); // 获取文件信息
ui->label_2->setText(fileInfos.fileName());
player->setMedia(QUrl::fromLocalFile(strAllFiles));
player->play();
}
void MainWindow::on_playButton_clicked()
{
player->play();
}
void MainWindow::on_pauseButton_clicked()
{
player->pause();
}
void MainWindow::on_stopButton_clicked()
{
player->stop();
}
void MainWindow::on_pushButton_Sound_clicked()
{
bool mte=player->isMuted();
player->setMuted(!mte);
if(mte)
ui->pushButton_Sound->setIcon(QIcon(":/new/prefix1/images/volumn.bmp"));
else
ui->pushButton_Sound->setIcon(QIcon(":/new/prefix1/images/mute.bmp"));;
}
void MainWindow::onDurationChanged(qint64 duration)
{
ui->horizontalSlider_Position->setMaximum(duration);
int secs=duration/1000;//秒
int mins=secs/60; //分钟
secs=secs % 60;//余数秒
durationTime=QString::asprintf("%d:%d",mins,secs);
ui->label_Ratio->setText(positionTime+"/"+durationTime);
}
void VideoPlayer::onPositionChanged(qint64 position)
{
if (ui->horizontalSlider_Position->isSliderDown())
return;
ui->horizontalSlider_Position->setSliderPosition(position);//
int secs=position/1000;//秒
int mins=secs/60; //分钟
secs=secs % 60;//余数秒
positionTime=QString::asprintf("%d:%d",mins,secs);
ui->label_Ratio->setText(positionTime+"/"+durationTime);
}
如果本文对你有所帮助,还请三连支持一下博主!