Qt调用VLC写的视频播放器源码

转载 2014年03月17日 12:06:50

http://www.bcwhy.com/thread-18482-1-1.html


最近因为工作需要,做了个视频播放器,能播放目前绝大多数格式,也能播放流媒体文件,界面是用Qt做的,这个项目能在mac linux windows等平台编译运行,采用的是C++语言和C++的GUI库Qt调用开源项目VLC提供出来的SDK,VLC是一个开源的视频播放器,比较牛,没听过的朋友可以百度一下。
先上效果图:由于是工作上的项目,只能把之前研究VLC的代码开源出来,后面修改的商业项目就不共享了。
 

下载地址:(下载后打开vlc-qt\demo\demo-player\demo-player.pro即可编译,不过需要4.8.4版本的QtSdk)
千脑下载:vlc-qt.rar
百度网盘我已委托@夜影帮忙上传,待会不上!
百度网盘:http://pan.baidu.com/share/link?shareid=446507&uk=1714263552

部分代码:

#include <QtGui/QFileDialog>
#include <QtGui/QInputDialog>

#include <vlc-qt/Common.h>
#include <vlc-qt/Instance.h>
#include <vlc-qt/Media.h>
#include <vlc-qt/MediaPlayer.h>

#include "DemoPlayer.h"
#include "ui_DemoPlayer.h"

DemoPlayer::DemoPlayer(QWidget *parent)
    : QMainWindow(parent),
      ui(new Ui::DemoPlayer),
      _media(0)
{
    ui->setupUi(this);

    _instance = new VlcInstance(VlcCommon::args(), this);
    _player = new VlcMediaPlayer(_instance);
    _player->setVideoWidget(ui->video);

    ui->video->setMediaPlayer(_player);
    ui->volume->setMediaPlayer(_player);
    ui->volume->setVolume(100);
    ui->seek->setMediaPlayer(_player);

    connect(ui->actionOpenLocal, SIGNAL(triggered()), this, SLOT(openLocal()));
    connect(ui->actionOpenUrl, SIGNAL(triggered()), this, SLOT(openUrl()));
    connect(ui->actionPause, SIGNAL(triggered()), _player, SLOT(pause()));
    connect(ui->actionStop, SIGNAL(triggered()), _player, SLOT(stop()));
    connect(ui->pause, SIGNAL(clicked()), _player, SLOT(pause()));
    connect(ui->stop, SIGNAL(clicked()), _player, SLOT(stop()));
}

DemoPlayer::~DemoPlayer()
{
    delete _player;
    delete _media;
    delete _instance;
    delete ui;
}

void DemoPlayer::openLocal()
{
    QString file =
            QFileDialog::getOpenFileName(this, tr("Open file"),
                                         QDir::homePath(),
                                         tr("Multimedia files(*)"));

    if (file.isEmpty())
        return;

    _media = new VlcMedia(file, true, _instance);

    _player->open(_media);
}

void DemoPlayer::openUrl()
{
    QString url =
            QInputDialog::getText(this, tr("Open Url"), tr("Enter the URL you want to play"));

    if (url.isEmpty())
        return;

    _media = new VlcMedia(url, _instance);

    _player->open(_media);
}




Qt调用mplayer做一个小小的视频播放器

周末有空,看看电影,听听音乐,想必是很爽的!对于入行不久的新手程序员们,有没有试着编写一个自己的媒体播放器呢???想必定是极好的!有人说,播放音频、视频涉及到不同格式媒体文件的编解码问题,不是那么容易...

基于VLC-Qt播放RTSP流

此篇是 使用VLC浏览器插件播放RTSP流的姊妹篇。 一.直接使用libVLC libVLC是VLC media player多媒体框架的核心引擎和接口,开发者使用它能轻松的创建大量具有VLC特性的应...

qt调用vlc响应windows消息

调用vlc的时候,vlc将会托管所有鼠标消息,键盘消息(因为vlc内置一个dvd menu功能,将会使用到这些消息),然而我们便不能定制自己的行为了,比如本人需要获取鼠标点击的坐标。 查询资料发现有...

视频播放器SunPlayer开源啦

SunPlayer是我的一个练手项目,它是一个视频播放器。 核心播放部分是ffplayer(https://github.com/rockcarry/ffplayer),ffplayer是对ffmp...

Qt-vlc 开发全记录

qt-vlc 开发起来还是非常方便,如果对定制开发没有特殊需求,对实时性也没有特殊需求,可以采用该方案。作者记录一下以防以后忘记。 到qt -vlc 的官网下载 最新的 qt-vlc 版本,使用的一个...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Qt+VLC编写的流媒体播放器

我是一名大四的学生,今年的毕业设计编写了这个播放器,主要功能是播放音频广播和电视直播。现在毕业答辩已经完成,我放出源码和可执行程序跟大家分享。注意:请勿将该项目用于任何学习交流以外的用途!      ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Qt+VLC简单的使用显示视频Demo

先看看效果: vlc播放视频,要比QMediaPlayer实用的多,并且同时运行20个视频时不会出现卡顿。 这个Demo功能实现非常简单,简单的说一下vlc流程: 1、创建并初始化一个lib...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt调用VLC写的视频播放器源码
举报原因:
原因补充:

(最多只允许输入30个字)