QT Creater中Qt Multimedia模組的使用
阿新 • • 發佈:2019-01-06
Qt 5中Qt Multimedia模組代替Qt 4 Phone模組的使用
音訊檔案播放:
main.cpp:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
定義mainwindows類物件w
mainwindow.cpp:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QSoundEffect> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); effect = new QSoundEffect(this); effect->setSource(QUrl::fromLocalFile("G:/mysoundeffect/sound.mp3")); effect->play(); effect->setVolume(0.25f); } MainWindow::~MainWindow() { delete ui; } // 播放按鈕 void MainWindow::on_pushButton_clicked() { effect->play(); } // 停止按鈕 void MainWindow::on_pushButton_2_clicked() { effect->stop(); } void MainWindow::on_spinBox_valueChanged(int arg1) { effect->setLoopCount(arg1); }
這裡定於一了一個QsoundEffect物件,通過本機音訊檔案的絕對地址通過QsoundEffect物件的setSoure賦值,通過setVolum設定音量取值範圍是0.0~1.0,綁定了兩個槽
voidMainWindow::on_pushButton_clicked()
{
effect->play();
}
//停止按鈕
voidMainWindow::on_pushButton_2_clicked()
{
effect->stop();
}
開始播放和停止播放兩個按鈕
如果要播放網路音樂,把本地路徑換成網站url就行
視訊檔案播放:
main.cpp:
#include "widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); }
widget.cpp:
用到兩個類,QMediaPlayer,viedioWidget,通過類QMedia中的setMedia方法傳檔案路徑,videoWidget設定播放視訊的視窗,並設定訊號與槽,來實現視訊檔案亮度,對比度,色相,飽和度的調節#include "widget.h" #include "ui_widget.h" #include <QMediaPlayer> #include <QVideoWidget> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); player = new QMediaPlayer(this); videoWidget = new QVideoWidget(this); videoWidget->resize(600, 300); player->setVideoOutput(videoWidget); player->setMedia(QUrl::fromLocalFile("../myvideowidget/video.wmv")); player->play(); // 亮度 ui->brightnessSlider->setValue(videoWidget->brightness()); connect(ui->brightnessSlider, &QSlider::sliderMoved, videoWidget, &QVideoWidget::setBrightness); connect(videoWidget, &QVideoWidget::brightnessChanged, ui->brightnessSlider, &QSlider::setValue); // 對比度 ui->contrastSlider->setValue(videoWidget->contrast()); connect(ui->contrastSlider, &QSlider::sliderMoved, videoWidget, &QVideoWidget::setContrast); connect(videoWidget, &QVideoWidget::contrastChanged, ui->contrastSlider, &QSlider::setValue); // 色相 ui->hueSlider->setValue(videoWidget->hue()); connect(ui->hueSlider, &QSlider::sliderMoved, videoWidget, &QVideoWidget::setHue); connect(videoWidget, &QVideoWidget::hueChanged, ui->hueSlider, &QSlider::setValue); // 飽和度 ui->saturationSlider->setValue(videoWidget->saturation()); connect(ui->saturationSlider, &QSlider::sliderMoved, videoWidget, &QVideoWidget::setSaturation); connect(videoWidget, &QVideoWidget::saturationChanged, ui->saturationSlider, &QSlider::setValue); } Widget::~Widget() { delete ui; }