目录
概述
QMediaPlayer 可以播放音频和视频。如果要视频在界面上显示出来,需要其他类的辅助,比如QVideoWidget、QGraphicsVideoItem 或者是自定义的类。而像 GIF格式的动画类型,可以使用 QMovie 播放。界面显示通过 QVideoWidget 类或者 QGraphicsVideoItem 类。这两个类都属于 Qt MultimediaWidgets 模块
QVideoWidget 继承自 QWidget ,QVideoWidget可以作为一个普通窗口部件进行显示,也可以嵌入到其他窗口中。
将QVideoWidget指定为 QMediaPlayer 的视频输出窗口以后,就可以显示播放的视频画面了。如果不为播放器设置视频输出界面的话,播放器也可以播放视频,不过只有声音而不会显示图像。使用 QVideoWidget 可以设置视频的亮度,对比度,色相和饱和度。还可以设置全屏显示。
要使用QMediaPlayer 进行播放,需要将QVideoWidget指定为 QMediaPlayer 的视频输出窗口。然后使用 setMedia(const QMediaContent &media, QIODevice stream = 0)槽来设置媒体源。其中,QMediaContent 提供了对媒体源的访问,它包含了媒体源的 URL 和格式信息,一般对于本地媒体只需要指定路径就可以。如果提供了一个媒体流 stream ,那么将会直接从流中读取媒体数据而不再对媒体进行解析。
要使用多媒体模块的内容,需要在.pro项目文件中添加如下代码:
QT += multimedia
播放音乐:
项目文件中添加:
QT += core gui multimedia
添加一个私有对象:
QMediaPlayer *player;
构造函数中添加:
player = new QMediaPlayer(this);
player->setMedia(QUrl::fromLocalFile(D:/酷狗下载/纯音乐 - 神话背景音乐琴声.mp3));
player->play();
播放视频
将QVideoWidget设置为QMediaPlayer的视屏输出,设置媒体源,然后播放。
项目文件中添加:
QT += core gui multimedia multimediawidgets
在头文件里添加类的前置声明:
class QMediaPlayer;
class QVideoWidget
添加私有对象:
QMediaPlayer * player;
QVideoWidget * videoWidget;
进入cpp文件,添加头文件包含:
#include <QMediaPlayer>
#include <QVideoWidget>
然后再构造函数中添加如下代码:
player = new QMediaPlayer(this);
videoWidget = new QVideoWidget(this);
videoWidget->resize(600,300); //设置视频输出窗口大小
player->setVideoOutput(vodeoWidget); //设置视频由videoWidget对象执行
player->setMedia(QUrl::fromLocalFile("../myvideo/video.wmv")); //设置视频本地路径
player->play(); //播放视频
QMediaPlayer函数用法
QMediaPlayer * player;
player = new QMediaPlayer(this);
player->play(); //播放
player->pause(); //暂停
player->stop(); //停止
player->position(); //可以获取当前播放位置,单位均为毫秒
player->setPosition(); //跳转到一个播放点,通过关联positionChanged()信号可以随时获得播放进度
player->duration(); //获得当前媒体的时长,单位为毫秒
player->currentMedia(); //获得当前进行播放的媒体内容,返回类型是QMediaContent
player->volume(); //获得当前的播放音量,其范围为0~100
player->setVolume(); //可以设置音量的大小,当音量发生改变时会发射volumeChanged()信号
player->setMuted(); //设置为静音