四平网站建设哪家效果好,做彩票类网站用什么服务器,建设网站费用如何入账,php模拟登陆wordpressqmediaplayer是QT5的播放视频的一个模块。它在很多时候还是要基于第三方的解码器。这里以Ubuntu系统为例#xff0c;记录其用法及进度条qslider的控制。
首先#xff0c;制作一个简单的界面文件mainwindow.ui#xff1a; 然后#xff0c;下载一个mp4或其他格式视频#x…qmediaplayer是QT5的播放视频的一个模块。它在很多时候还是要基于第三方的解码器。这里以Ubuntu系统为例记录其用法及进度条qslider的控制。
首先制作一个简单的界面文件mainwindow.ui 然后下载一个mp4或其他格式视频比如mkv基于以上UI进行播放控制操作。
#include mainwindow.h
#include ui_mainwindow.hMainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{timer new QTimer();ui-setupUi(this);player new QMediaPlayer;list new QMediaPlaylist(player);//list-addMedia(QUrl::fromLocalFile(/home/m30.mp4));//list-addMedia(QUrl::fromLocalFile(/home/share/2023.mkv));list-addMedia(QUrl::fromLocalFile(/home/share/50.mp4));list-setCurrentIndex(0);list-setPlaybackMode(QMediaPlaylist::Loop);player-setPlaylist(list);ui-widget-setAspectRatioMode(Qt::IgnoreAspectRatio);long time player-duration();printf(duration: %lld\n, player-duration());player-setVideoOutput(ui-widget);timer-setInterval(5000);connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout()));timer-start();ui-horizontalSlider-setValue(0);connect(player, QMediaPlayer::durationChanged, ui-horizontalSlider, QSlider::setMaximum);connect(player, QMediaPlayer::positionChanged, ui-horizontalSlider, QSlider::setValue);connect(ui-horizontalSlider, QSlider::sliderMoved, this, [this](int value){printf(slide: %d\n, value);player-setPosition(value);});player-setVolume(100);player-play();//player-setPosition();
}
void MainWindow::onTimeout()
{printf(timeout\n);player-setPosition(30*1000);
}
MainWindow::~MainWindow()
{delete ui;player-stop();if (player)delete player;if(list)delete list;
}代码集成了两种控制方式1.定时5秒循环让进度跳到某个30秒位置2.手动拖动进度条控制播放进度。
友好期间顺道贴上mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include QMainWindow
#include QMediaPlayer
#include QVideoWidget
#include QMediaPlaylist
#include QTimer
#include QSlidernamespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent 0);~MainWindow();private:Ui::MainWindow *ui;QMediaPlayer *player;QVideoWidget * videoWidget;QMediaPlaylist * list;QTimer* timer;QSlider* slid;
public slots:void onTimeout();
};#endif // MAINWINDOW_H另外如果遇到运行时闪退报找不到合适的解码器的错误的话需要先安装解码器:
sudo apt install gstreamer1.0-libav -y