太原做网站的鸣蝉公司,大学网页设计作业,网站是不是用cms做的,长沙网站营销目录
1 工程配置
1.1 创建新工程
1.2 ui界面配置
1.3 .pro配置
2 代码
2.1 main.c代码
2.2 widget.c
2.3 widget.h 本文主要记述了如何使用Qt编写一个简单的视频播放器#xff0c;整个示例采用Qt自带组件就可以完成。可以实现视频的播放和暂停等功能。 1 工程配置
1.…目录
1 工程配置
1.1 创建新工程
1.2 ui界面配置
1.3 .pro配置
2 代码
2.1 main.c代码
2.2 widget.c
2.3 widget.h 本文主要记述了如何使用Qt编写一个简单的视频播放器整个示例采用Qt自带组件就可以完成。可以实现视频的播放和暂停等功能。 1 工程配置
1.1 创建新工程
如下步骤创建一个名为13-video_player_demo的工程文件选择基于QWidget就可以带上ui文件。 1.2 ui界面配置
界面就有四个组件垂直布局、三个按钮 1.3 .pro配置
在.pro文件内加入
multimedia multimediawidgets
即
QT core gui multimedia multimediawidgets
2 代码
2.1 main.c代码
#include widget.h#include QApplicationint main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}2.2 widget.c
#include widget.h
#include ui_widget.h
#include QFileInfo
#include QFileDialog
#include QDir
#include QMessageBox
#include QVBoxLayoutWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);// 创建实例化对象player new QMediaPlayer(this); videoplayer new QVideoWidget(this);// 将videoplayer添加到verticalLayout里面不然将单独开个页面ui-verticalLayout-addWidget(videoplayer);// 将videoplayer设置为player的输出player-setVideoOutput(videoplayer);// 当视频状态发送变化时触发connect(player, SIGNAL(stateChanged(QMediaPlayer::State)), SLOT(OnStateChange(QMediaPlayer::State)));
}Widget::~Widget()
{delete ui;
}void Widget::on_btn_Import_clicked()
{QString strCurrentPath QDir::homePath();QString stdDlgTitle 请选择视频文件;QString strFilter MP4 File(*.mp4);;All File(*.*);QString strAllFiles QFileDialog::getOpenFileName(this, stdDlgTitle,strCurrentPath,strFilter);if(strAllFiles.isEmpty()) {QMessageBox::information(this,错误,打开视频文件失败请重新检查,QMessageBox::Yes|QMessageBox::No);return;}QFileInfo fileInfos(strAllFiles);qDebug() File info: fileInfos.fileName() , path: fileInfos.filePath();player-setMedia(QUrl::fromLocalFile(strAllFiles));player-play(); // 播放
}void Widget::on_btn_play_clicked()
{player-play(); // 播放
}void Widget::on_btn_pause_clicked()
{player-pause(); // 停止播放
}void Widget::OnStateChange(QMediaPlayer::State state)
{qDebug() state change;//播放器状态变化bool isPlaying (stateQMediaPlayer::PlayingState);ui-btn_play-setEnabled(!isPlaying);ui-btn_pause-setEnabled(isPlaying);
}2.3 widget.h
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include QVideoWidget
#include QMediaPlayerQT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();QVideoWidget *videoplayer;QMediaPlayer *player;private slots:void on_btn_Import_clicked();void on_btn_play_clicked();void on_btn_pause_clicked();void OnStateChange(QMediaPlayer::State state);private:Ui::Widget *ui;
};
#endif // WIDGET_H3 注意
1 有时候需要在Linux系统上下载想要的视频软件
2 直接从windows上拉个文件到Linux上可能由于编码原因不能播放 可以在Linux上录一段视频 可以进行转码