QML 播放器(vlc-Qt 和QtAV 两种方式)

需求:教师上课,学生利用PC端 进行观看,经调研针对Qt的播放器,主流有两种方式 vlc-qt 与QtAv

效果:

1,首页 即登录页,包括扫码登录与账号密码登录

QML 播放器(vlc-Qt 和QtAV 两种方式)_第1张图片

 

2,视频页  视频展示,并在视频上叠加 常用工具栏

QML 播放器(vlc-Qt 和QtAV 两种方式)_第2张图片

 

3.实现

一,vcl-qt方式

1,利用vlc-qt 和qml 实现客户端,用户用手机扫码直接登录观看

2,vlc-qt  https://github.com/vlc-qt

3,工程配置

LIBS       += -LE:\vlc-qt\lib -lVLCQtCore -lVLCQtQml
INCLUDEPATH += E:\vlc-qt\include

4,视频加载

VlcVideoPlayer {
        id: vidwidget
        anchors.fill: parent
        autoplay:false
        url:root.url  //视频流地址
    }

 

二,qtAv方式

(1),qtAv编译 

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

下载源码

git clone https://github.com/wang-bin/QtAV.git
cd QtAV && git submodule update --init

下载依赖

 http://sourceforge.net/projects/qtav/files/depends/QtAV-depends-windows-x86%2Bx64.7z/download 

 

QtCreator编译

添加环境变量,对于msvc2015+Qt5.10 的环境 只需要修改 INCLUDE 和LIB,再这两个变量后增加上述ffmpeg的依赖

QML 播放器(vlc-Qt 和QtAV 两种方式)_第3张图片

(2),使用

import QtAV 1.7 
Video {
        id:vidwidget
        anchors.fill: parent
        source:root.url
        autoPlay: false
        onStatusChanged:{
            console.log("onStatusChanged",status)
            if(status==MediaPlayer.Buffered){
                animation.paused=true
                animation.visible=false
            }
        }
}

(3),win7 下需要安装插件,否则析构时 崩溃

https://sourceforge.net/projects/qtav/files/depends/DXSDK2010_XAudio2_redist.7z/download

(4),播放状态 。利于此状态可以检测 开始加载视频,以及视频断开等。

QML 播放器(vlc-Qt 和QtAV 两种方式)_第4张图片

 

4,对比

qml方式, qtAV 比vlc-qt 占用更少的cpu和gpu。 并且qtAV的功能 更多一些,接口调用简单,编译也简单。所以推荐qtAV.

 

你可能感兴趣的:(音视频)