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

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


视频界面:


先唠叨两句,不想看的可以迅速下翻寻找下载地址
大学期间自学了Qt,经常到Qt吧浏览。用Qt中的phonon和Multimedia编写本地播放器非常方便,很多吧友都会写播放器练手,我很早就想突破一下,变本地播放器为流媒体播放器。毕竟网络的世界比我的电脑宽广许多!直到我认识了VLC,这个想法才得以实现。
VLC介绍:VLC是著名的开源播放器,其流媒体推送和播放功能非常强大。VLC的项目组把核心库LibVLC提供出来,供其他程序员二次开发使用。对不了解的朋友做个比喻,LibVLC可以简单的当作和phonon、QtMultimedia是同一类的多媒体库,但是功能上当然不是一个量级的。
开发环境:
IDE:Qt Creator3.6.1
编程框架:Qt 5.6.0
编译器:MinGW 4.9.2
流媒体库:LibVLC2.2.2
我知道肯定有很多朋友跟我的开发环境有差异,比如Qt的版本、编译器的不同等等,但是我机器上只有这个版本,恕无法提供其他版本的测试情况。但是有一点请注意:我曾经在Qt5.2上进行过编译,编译通过但程序是有明显问题的,所以建议大家使用最新的Qt 5.6.0。
配置LibVLC:
LibVLC的SDK在文末的百度云链接中有。配置过程如下:
1.将整个SDK文件夹放到你喜爱的位置,并记下包含这个文件夹的路径,比如D:\sdk。
2.在项目的工程文件(.pro)中加入以下内容:
INCLUDEPATH += D:\sdk\include #这个是LibVLC的头文件包含目录,请自行修改。
LIBS += D:\sdk\lib\libvlc.lib #这两行是LibVLC的库文件路径,请自行修改。
LIBS +=D:\sdk\lib\libvlccore.lib
3.在项目中加入#include <vlc/vlc.h>,就可以调用LibVLC了。
提示:这部分内容可以参考大神雷霄骅在CSDN上的文章。网址为:
1. http://blog.csdn.net/leixiaohua1020/article/details/42363079
2. http://blog.csdn.net/leixiaohua1020/article/details/42363593
添加运行库:
libVLC是动态编译的,跟Qt类似。以上的操作只是在编程时引入LibVLC,编译后的程序如要运行,还须添加libVLC的动态链接库。要添加的文件为:libvlc.dll,libvlccore.dll,还要添加一个文件夹plugins。这些文件和文件夹需要放置在可执行程序的目录下,不熟悉的朋友可以类比一下Qt程序的发布,就能理解了。完整的程序(可执行文件+Qt运行库+LibVLC运行库)在文末的百度云链接中有,大家可作参考。
已知问题:
1.程序bug:视频模式下切换窗口再恢复,控件会丢失焦点,但是功能可以正常使用。希望大神们可以
指出bug的原因,非常感谢!
2.频道地址的问题:现在网上音频广播和电视直播多如牛毛,但是地址大多不透明。在采集流媒体地
址的路上我步履维艰。而且大部分网站都做了处理,频道地址是实时更换的。不得不说是个遗憾。


最后贴出源码和可执行程序的下载地址: http://pan.baidu.com/s/1i598w7N
实现 QTVLC 视频播放器的上一曲下一曲功能,可以按照以下步骤进行: 1. 在 QT 中创建一个新的项目,选择 Qt Widgets Application。 2. 在项目中添加 VLC 的头文件和库文件路径。在 .pro 文件中添加以下代码: ``` INCLUDEPATH += /path/to/vlc/include LIBS += -L/path/to/vlc/lib -lvlc ``` 3. 在 Qt Designer 中创建一个主窗口,添加一个 QMediaPlayer 控件和两个 QPushButton 控件。一个用于上一曲,一个用于下一曲。 4. 在主窗口的构造函数中创建一个 QMediaPlayer 对象,并且将其设置到 QVideoWidget 控件中: ``` QMediaPlayer *player = new QMediaPlayer(this); QVideoWidget *videoWidget = new QVideoWidget(this); player->setVideoOutput(videoWidget); ``` 5. 在 QPushButton 的 clicked 信号中,调用 QMediaPlayer 的相应接口进行上一曲和下一曲操作: ``` connect(prevButton, &QPushButton::clicked, [=]() { playlist->previous(); }); connect(nextButton, &QPushButton::clicked, [=]() { playlist->next(); }); ``` 6. 创建一个 QMediaPlaylist 对象,用于管理视频文件列表,并将列表设置到 QMediaPlayer 中: ``` QMediaPlaylist *playlist = new QMediaPlaylist(this); playlist->addMedia(QUrl::fromLocalFile("/path/to/video1.mp4")); playlist->addMedia(QUrl::fromLocalFile("/path/to/video2.mp4")); playlist->addMedia(QUrl::fromLocalFile("/path/to/video3.mp4")); player->setPlaylist(playlist); ``` 7. 最后,播放视频: ``` player->play(); ``` 这样,一个基于 QtVLC 的视频播放器就完成了,并且可以实现上一曲和下一曲功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值