日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT简易播放器

發(fā)布時間:2023/12/10 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT简易播放器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近生活有點忙,期末的復(fù)習(xí),每天下午還要兼職,學(xué)習(xí)的時間少了許多,西安的天氣還這么熱。
先看今天這個播放器項目的運行:

QTplayer.pro:

#------------------------------------------------- # # Project created by QtCreator 2021-04-07T14:10:59 # #-------------------------------------------------QT += core gui multimedia multimediawidgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = QTPlayer TEMPLATE = app# The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \mainwindow.cppHEADERS += \mainwindow.hFORMS += \mainwindow.uiRESOURCES += \res.qrc

mainwindow.h:

#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QVideoWidget> #include <QMediaPlayer> #include <QFileDialog> #include <QString> namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;QMediaPlayer *mediaPlayer; private slots:void play();void mediaStateChanged(QMediaPlayer::State state);//改變播放位置void positionChanged(qint64 position);//獲取播放位置void setPosition(int position);//播放長度void durationChanged(qint64 position);//播放異常的操作void handleError();void on_toolButton_clicked();void on_horizontalSlider_sliderMoved(int position);void on_toolButton_2_clicked(); };#endif // MAINWINDOW_H

mainwindow.cpp:

#include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this);//設(shè)置主界面背景 // QPixmap pixmap=QPixmap("C:/Users/zfc/Desktop/QtProject/res/ok.jpg"); // QPalette palette; // palette.setBrush(backgroundRole(),QBrush(pixmap)); // setPalette(palette); //connect(ui->actionEXIT,&QAction::triggered,[=](){this->close();});//調(diào)色板 控件的樣式QPalette palette (this->palette());palette.setColor(QPalette::Background, Qt::yellow);this->setPalette( palette );setWindowIcon(QIcon("C:/Users/zfc/Desktop/QtProject/res/Coin0001.png"));this->setFixedSize(this->width(),this->height());//創(chuàng)建mediaplayermediaPlayer=new QMediaPlayer(this);//設(shè)置對應(yīng)mediaplayer的QvideoWidgetmediaPlayer->setVideoOutput(ui->widget);//設(shè)置播放屬性//1 監(jiān)聽信號變化函數(shù)connect(mediaPlayer,SIGNAL(stateChanged(QMediaPlayer::State)),this,SLOT(mediaStateChanged(QMediaPlayer::State)));//播放進度信號變化connect(mediaPlayer,SIGNAL(positionChanged(qint64)),this,SLOT(positionChanged(qint64)));//媒體播放長度信號變化connect(mediaPlayer,SIGNAL(durationChanged(qint64)),this,SLOT(durationChanged(qint64)));//設(shè)置播放錯誤關(guān)聯(lián)connect(mediaPlayer,SIGNAL(error(QMediaPlayer::Error)),this,SLOT(handleError()));//設(shè)置播放按鈕ui->toolButton->setToolTip("播放"); // ui->toolButton->setAutoRaise(true);ui->toolButton->setIcon(QPixmap("C:/Users/zfc/Desktop/imag/2 (1).jpg"));//設(shè)置打開文件按鈕ui->toolButton_2->setToolTip("打開文件");//設(shè)置按鈕自動升起ui->toolButton_2->setAutoRaise(true);ui->toolButton_2->setIcon(QPixmap("C:/Users/zfc/Desktop/imag/open.png")); }MainWindow::~MainWindow() {delete ui; } void MainWindow::play(){//獲取播放狀態(tài)switch(mediaPlayer->state()){case QMediaPlayer::PlayingState:mediaPlayer->pause();break;default:mediaPlayer->play();break;} } void MainWindow::mediaStateChanged(QMediaPlayer::State state){//設(shè)置mediaplayer播放過程中動態(tài)調(diào)整播放進度switch (state) {case QMediaPlayer::PlayingState:ui->toolButton->setToolTip("暫停");ui->toolButton->setIcon(QPixmap("C:/Users/zfc/Desktop/imag/2 (3).jpg"));break;default:ui->toolButton->setToolTip("播放");ui->toolButton->setIcon(QPixmap("C:/Users/zfc/Desktop/imag/2 (2).jpg"));break;} } void MainWindow::setPosition(int position){//調(diào)整播放進度mediaPlayer->setPosition(position); }void MainWindow::durationChanged(qint64 duration){//獲取進度條的范圍ui->horizontalSlider->setRange(0,duration); }void MainWindow::positionChanged(qint64 position){//改變播放位置ui->horizontalSlider->setValue(position); } void MainWindow::on_toolButton_clicked() {play();//需要設(shè)置按鈕暫停樣式 測試 // ui->toolButton->setToolTip("暫停"); // ui->toolButton->setIcon(QPixmap("C:/Users/zfc/Desktop/imag/2 (3).jpg")); }void MainWindow::on_horizontalSlider_sliderMoved(int position) {setPosition(position); } void MainWindow::handleError(){ui->toolButton->setEnabled(false); }void MainWindow::on_toolButton_2_clicked() {//打開文件默認路徑QString filename=QFileDialog::getOpenFileName();//設(shè)置播放的內(nèi)容mediaPlayer->setMedia(QUrl::fromLocalFile(filename));ui->toolButton->setAutoRaise(true);}

mainwindow.ui:

總結(jié)

以上是生活随笔為你收集整理的QT简易播放器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。