Ubuntu18.04系统下使用vlc-qt实现简易视频播放器

学习的是vlc-qt的视频播放器的demo。

1、前期思考

实现一个最简单的播放器需要以下几样东西:

a、播放器进度条。

b、播放器声音条。

c、播放器界面。

d、播放器按钮。

有了这几样东西一个简单的视频播放器就可以实现了。

2、定义、组装

现在分别来看看这几样东西怎么创建。

播放器按钮最为简单,我们直接使用QPushButton类即可实现。我们创建了三个按钮,播放、暂停、停止。
 

QPushButton *btn_start = new QPushButton();
QPushButton *btn_stop = new QPushButton();
QPushButton *btn_pause = new QPushButton(); 

当然我们也可以直接在ui文件中拖动生成。

刚刚提到的 播放器进度条、播放器声音条、播放器界面那就属于是vlc-qt的范畴。而且它们都属于控件类,因此这三者都可以在 VLCQtWidgets的文件夹中找到对应的头文件。

播放器进度条类  #include 
播放器界面类 #include 
播放器声音条类 #include 

因此我们可以在头文件中这样定义它们:

VlcWidgetVideo *MainPlayerWidget;
VlcWidgetSeek *seek;
VlcWidgetVolumeSlider *VolumeSlider;

值得注意的是,这里我们还需要一个播放控制类和播放类要来串联刚刚提到的三个类。它们分别属于:
 

#include 
#include 

我们在头文件中这样定义它们:

VlcMedia *media;
VlcMediaPlayer *player;

到了这一步,最简单的播放器的相关组件是定义好了。

接下来便是组装这些组件了。

播放器界面类的生成

MainPlayerWidget = new VlcWidgetVideo (ui→widget);

这边值得注意的是MainPlayerWidget需要重新设置一下大小,不然没有办法显示出来。vlc-qt的demo中代码没有resize大小是因为它在ui文件中直接将Widget提升为VlcWidgetVideo,所以不需要重新设置大小。而我们的组件是直接用代码生成的,所以需要手动确定大小。

MainPlayerWidget→resize(ui→widget→width(),ui→widget→height());

播放器进度条类的生成:

seek = new VlcWidgetSeek (ui->widget_2);

播放器声音条类的生成:

VolumeSlider = new VlcWidgetVolumeSlider (ui→widget_2);

播放控制类的生成:

player = new VlcMediaPlayer(instance);

播放类的生成:

media = new VlcMedia("1.mp4", true, instance);

有了一系列的组件,组装就是一件非常容易的事情
 

player->setVideoWidget(MainPlayerWidget);
MainPlayerWidget->setMediaPlayer(player);
seek->setMediaPlayer(player);
VolumeSlider->setMediaPlayer(player);
VolumeSlider→setVolume(10);

视频的暂停、播放、停止使用了信号与槽实现,当点击了对应的按钮时,执行相应的槽函数。

另外,播放器使用了单例模式,其定义在

#include 

3、析构注意点

在析构代码时,要注意一点,delete instance;应该放在 delete media; delete player;的后面,如果delete instance放在了它们的前面,在关闭软件时会报一个异常错误。

Ubuntu18.04系统下使用vlc-qt实现简易视频播放器_第1张图片

4、源码

https://download.csdn.net/download/Phr_Nick/12483589

你可能感兴趣的:(Qt初体验,vlc-qt播放器,Qt)