天天看点

异地过年,我要用它看春晚!- Qt趣味开发之基于QtAV的电视播放器

今年过年因为疫情的关系,在工作地点过年。家里穷的连个电视都没有,春晚都看不了,怎么办??!!

QtAV是一个开源的音视频播放器,支持播放本地文件和网络流媒体。并集成了多种视频渲染方式,使用它的简单的API可以轻松的实现做一个网络电视播放器(我这里在网上找的RTMP的地址)。

更多关于QtAV的介绍,可以参考QtAV的github主页:

https://github.com/wang-bin/QtAV

下面是我基于QtAV做的简易版本的电视播放器:

异地过年,我要用它看春晚!- Qt趣味开发之基于QtAV的电视播放器

QtAV播放RTMP的代码也很简单:

using namespace QtAV;
QtAV::Widgets::registerRenderers();

// 创建播放器
AVPlayer* pPlayer = new AVPlayer(this);
// 创建渲染窗口(OpenGL渲染)
OpenGLWidgetRenderer* render = new OpenGLWidgetRenderer;
// 为播放器设置渲染窗口
pPlayer ->setRenderer(render);
// 播放视频(可以是网络视频流,也可以是视频文件)
pPlayer ->play(url);
           

AVPlayer 中有很多播放控制接口,如 play() 、 pause() 、 stop() 等等。

音量控制,可以通过接口 audio() 获取 AudioOutput 类,通过该类设置音量。

void QtAVPlayerWidget::setVolume(qreal value)
{
    m_volume = value;
    AudioOutput* pAudioOutput = m_pAVPlayer->audio();

    if (pAudioOutput)
        pAudioOutput->setVolume(value);
}
           

软件下载:

https://download.csdn.net/download/douzhq/15178249

代码下载(VS2019 Qt5.15.2 x64)

https://download.csdn.net/download/douzhq/15178311

继续阅读