[英]How to play a local video in a Qt Widgets Application, in Qt creator?
这可能是一个非常菜鸟的问题...我对Qt还是很陌生,并尝试在Qt Creator中进行编程。 现在,我从Qt创作者创建了一个新的Qt Widgets应用程序,并希望使用它来播放视频。 我的项目中现在有以下6个文件:
在运行应用程序时(也许使用一些称为QVideoPlayer的工具),我应该在哪里以及如何确切地编写代码以使其能够播放Demo.mp4? 我应该在我的videoplayer.ui上添加一些Qwidget吗? 现在,我的videoplayer.ui上有四个按钮“播放”,“暂停”,“全屏”和“重新排列”。 我想要的结果具有以下特征:
您在寻找Qt Multimedia Widgets 。 (运行Linux时,您可能需要安装其他软件包)。
基本思路如下:
QVideoWidget
。 这是显示视频的地方。
.ui
文件中的内容。 fullScreen
属性。 QMediaPlayer
来控制播放的内容和播放的时间。
QMediaPlayer::setVideoOutput(yourVideoWidgetGoesHere);
来连接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();
您正在寻找的是在Qt 5
上实现QMediaPlayer ,在Qt 4.4
上Qt 4.4
QVideoPlayer 。
对于QMediaPlayer
,您必须使用以下实现来添加一部电影:
QMediaPlayer *player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("/users/somebody/somewhere/demo.mp4"));
player->setVolume(10);
player->play();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.