这可能是一个非常菜鸟的问题...我对 Qt 很陌生,正在尝试在 Qt 创建者中编程。现在我从 Qt 创建者创建了一个新的 Qt Widgets 应用程序,并想用它播放视频。现在我的项目中有以下 6 个文件:
当我运行应用程序时(也许使用一些名为 QVideoPlayer 的工具),我应该在哪里以及如何编写代码以使其播放 Demo.mp4?我应该在 videoplayer.ui 上添加一些 Qwidget 吗?现在,我的 videoplayer.ui 上有四个按钮“播放”、“暂停”、“全屏”和“重新排列”。我想要的结果是具有以下特征的东西:
您正在寻找 Qt 多媒体小部件。 (运行 Linux 时您可能需要安装额外的软件包)。
基本思想是这样的:
QVideoWidget
。这是视频显示的地方。
.ui
文件中的内容。fullScreen
属性。QMediaPlayer
来控制播放内容和播放时间。
QMediaPlayer::setVideoOutput(yourVideoWidgetGoesHere);
联系起来。QMediaPlaylist
添加到您的 QMediaPlayer
。QMediaPlayer::play()
,你就可以出发了如果到目前为止可行,那么您需要一些基本的控件。
QMediaPlayer
提供了以下插槽,其功能正如其名称所示:
pause()
play()
stop()
setPosition(int)
,参数以毫秒为单位。 duration()
可能会感兴趣。setVolume(int)
和setMuted(bool)
。音量从 0 到 100。setPlaybackRate(double)
metaData(QString key)
获取:http://qt-project.org/doc/qt-5/qmediaobject.html#metaData其中每一个都有相应的更改信号,对您来说非常有趣的可能是更新滑块或与当前位置类似的东西的
positionChanged(int)
信号。
Qt 文档提供的基本示例:
player = new QMediaPlayer;
playlist = new QMediaPlaylist(player);
playlist->addMedia(QUrl("http://example.com/myclip1.mp4"));
playlist->addMedia(QUrl("http://example.com/myclip2.mp4"));
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
playlist->setCurrentIndex(1);
player->play();
您正在寻找的是实现一个 QMediaPlayer(如果您使用
Qt 5
),一个 QVideoPlayer(如果您使用 Qt 4.4
)
对于
QMediaPlayer
,您必须使用以下实现来添加一部电影:
QMediaPlayer *player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("/users/somebody/somewhere/demo.mp4"));
player->setVolume(10);
player->play();