要实现循环播放 VideoOutput,你可以通过设置一个信号处理函数,在视频播放完成时重新开始播放。以下是一个示例的代码片段:
#include <QtMultimedia/QMediaPlayer>
#include <QtMultimediaWidgets/QVideoWidget>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QMediaPlayer mediaPlayer;
QVideoWidget videoWidget;
// 设置视频输出
mediaPlayer.setVideoOutput(&videoWidget);
// 加载视频文件
mediaPlayer.setMedia(QUrl::fromLocalFile("path/to/video.mp4"));
QObject::connect(&mediaPlayer, &QMediaPlayer::stateChanged, [&](QMediaPlayer::State state){
if (state == QMediaPlayer::StoppedState) {
mediaPlayer.setPosition(0);
mediaPlayer.play();
}
});
videoWidget.show();
mediaPlayer.play();
return app.exec();
}
这段代码使用了 Qt 框架中的 QMediaPlayer
和 QVideoWidget
来实现视频播放,并通过连接 stateChanged
信号来检测是否播放完成。当视频状态变为 StoppedState
时,即播放完成时,将当前位置设置为0,并重新开始播放。
请注意替换示例代码中的 “path/to/video.mp4” 为你自己的视频文件路径。
内容由零声教学AI助手提供,问题来源于学员提问