Qt 一个简单的基于mplayer的视频播放器
一个简单的基于mplayer的视频播放器 刚学习Qt不久,做了一个简单的额视频播放器,可实现简单的快进、后退、减速播放、加速播放、声音的调控、暂停、开始、截图等。 根据现有的进行了一些功能的改进:双击屏幕亦实现暂停、播放,加载的列表可一直保存。
界面
由于截图工具截取不了播放的画面,只能将就看了,界面就是这样的额。
下面直接上代码
代码:
// An highlighted block
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#pragma execution_character_set("utf-8")
#include <QMainWindow>
#include <QPixmap>
#include <QSize>
#include <QProcess>
#include <QDir>
#include <QFileDialog>
#include <QFile>
#include <QTextStream>
#include <QListWidget>
#include <QStringList>
#include <QListWidgetItem>
#include <QByteArray>
#include <QMessageBox>
#include <QApplication>
#include <QDesktopWidget>
#include <QMouseEvent>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QPixmap pixmap;
QProcess *process;//使用进程进行操作
QString arg;//用来存放要使用的mplayer播放器路径
// QString currentPercent;
// QString currentStr;
// QString totalTime;
public:
QString fileName;
private slots:
void openFileSlot();//打开文件
void deleteFileSlot();//删除文件
void play(QString fileName);//播放
void on_listWidget_itemDoubleClicked(QListWidgetItem *item);//项目双击播放
void dataReceive();//接收视频信息(当前时间,总时间,进度),并显示
void zantingOrstartSlot();//暂停或开始
void on_horizontalSlider_sliderMoved(int position);//移动进度条控制播放位置
void backSlot();//后退
void forwardSlot();//快进
void lastSlot();//上一个
void nextSlot();//下一个
void reduceSlot();//减速
void accelerateSlot();//加速
void stopSlot();//停止
void voiceSlot();//声音静音
void on_voiceslider_sliderMoved(int position);//声音滑条
void screenshotSlot();//截图
void mousePressEvent(QMouseEvent *event);
};
#endif // MAINWINDOW_H
//mainwindow.app
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <iostream>
using namespace std;
static double speed=1;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
this->process = new QProcess;
this->process->setProcessChannelMode(QProcess::MergedChannels);
arg = "F:/mypler-vedio/MPlayer/mplayer.exe";
ui->setupUi(this);
QPixmap pixmap;
pixmap.load("E:/VS2013 QT/New_Qt Creator/vedio-player/voice.png");
ui->voiceButton->setFixedSize(pixmap.width(),pixmap.height());
ui->voiceButton->setIcon(pixmap);
ui->voiceButton->setIconSize(QSize(pixmap.width(),pixmap.height()));
ui->voiceButton->setToolTip("音量");
ui->voiceButton->show();
ui->voiceslider->setSliderPosition(20);
ui->voiceslider->setValue(20);
QPixmap pixmap1;
pixmap1.load("E:/VS2013 QT/New_Qt Creator/vedio-player/last.png");
ui->lastButton->setFixedSize(pixmap.width(),pixmap.height());
ui->lastButton->setIcon(pixmap1);
ui->lastButton->setIconSize(QSize(pixmap.width(),pixmap.height()));
ui->lastButton->setToolTip("上一个");
ui->lastButton->show();
QPixmap pixmap2;
pixmap2.load("E:/VS2013 QT/New_Qt Creator/vedio-player/next.png");
ui->nextButton->setFixedSize(pixmap.width(),pixmap.height());
ui->nextButton->setIcon(pixmap2);
ui->nextButton->setIconSize(QSize(pixmap.width(),pixmap.height()));
ui->nextButton->setToolTip("下一个");
ui->nextButton->show();
QPixmap pixmap3;
pixmap3.load("E:/VS2013 QT/New_Qt Creator/vedio-player/start.png");
ui->startButton->setFixedSize(pixmap.width(),pixmap.height());
ui->startButton->setIcon(pixmap3);
ui->startButton->setIconSize(QSize(pixmap.width(),pixmap.height()));
ui->startButton->setToolTip("开始播放");
ui->startButton->show();
QPixmap pixmap5;
pixmap5.load("E:/VS2013 QT/New_Qt Creator/vedio-player/manfang.png");
ui->manButton->setFixedSize(pixmap.width(),pixmap.height());
ui->manButton->setIcon(pixmap5);
ui->manButton->setIconSize(QSize(pixmap.width(),pixmap.height()));
ui->manButton->setToolTip("减速播放");
ui->manButton->show();
QPixmap pixmap6;
pixmap6.load("E:/VS2013 QT/New_Qt Creator/vedio-player/kuaifang.png");
ui->kuaiButton->setFixedSize(pixmap.width(),pixmap.height());
ui->kuaiButton->setIcon(pixmap6);
ui->kuaiButton->setIconSize(QSize(pixmap.width(),pixmap.height()));
ui->kuaiButton->setToolTip("加速播放");
ui->kuaiButton->show();
QPixmap pixmap7;
pixmap7.load("E:/VS2013 QT/New_Qt Creator/vedio-player/back.png");
ui->backButton->setFixedSize(pixmap.width(),pixmap.height());
ui->backButton->setIcon(pixmap7);
ui->backButton->setIconSize(QSize(pixmap.width(),pixmap.height()));
ui->backButton->setToolTip("后退");
ui->backButton->show();
QPixmap pixmap8;
pixmap8.load("E:/VS2013 QT/New_Qt Creator/vedio-player/fast.png");
ui->fastButton->setFixedSize(pixmap.width(),pixmap.height());
ui->fastButton->setIcon(pixmap8);
ui->fastButton->setIconSize(QSize