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,绑定了两个槽
void MainWindow::on_pushButton_clicked()
{
effect->play();
}
// 停止按钮
void MainWindow::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:
#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;
}
用到两个类,QMediaPlayer,viedioWidget,通过类QMedia中的setMedia方法传文件路径,videoWidget设置播放视频的窗口,并设置信号与槽,来实现视频文件亮度,对比度,色相,饱和度的调节