无法在 QML 中播放视频
Posted
技术标签:
【中文标题】无法在 QML 中播放视频【英文标题】:Unable to play video in QML 【发布时间】:2017-05-18 10:55:25 【问题描述】:我正在使用 Qt 5.8 开发 ubuntu 14.04,并尝试使用 Qt 多媒体模块在我的应用程序中播放视频。我把“QT +=快速多媒体”放在“.pro”中。
ContentVideo.qml
import QtQuick 2.1
import QtMultimedia 5.0
Rectangle
width: 400
height: 400
color:"black"
MediaPlayer
id: mediaPlayer
autoPlay: true
autoLoad: true
source:"/home/macos/Desktop/FroggerHighway.mp4"
VideoOutput
id:videoOutput
source:mediaPlayer
anchors.fill: parent
main.qml
import QtQuick 2.1
import QtQuick.Window 2.1
Window
id: root
color: "black"
width: 400
height: 400
visible: true
ContentVideo
anchors.fill: parent
我的视频没有运行,我得到黑屏,没有任何错误。 QT QML 示例视频正在我的电脑上运行。任何帮助将不胜感激,谢谢。
【问题讨论】:
【参考方案1】:MediaPlayer.source 是一个 URI,我认为您指定的值不是有效的 URI。尝试在 mp4 文件的路径前添加“file://”。
【讨论】:
非常感谢您的回应【参考方案2】:我刚刚遇到了和你一样的问题,看来QtMultimedia会在运行时从系统中的gstreamer中寻找解码器,所以我安装了视频编解码器包:
sudo apt-get install gstreamer1.0-libav gstreamer1.0-vaapi
那么qml视频播放器现在可以正常工作了
【讨论】:
【参考方案3】:如果 QML 视频示例正常工作,则可能是由于缺少编解码器来对视频进行编码。检查您是否拥有所有Multimedia Dependencies。我的猜测是,提供的视频样本是以开放格式编码的,您的发行版默认提供支持。
【讨论】:
【参考方案4】:将QT+= multimedia
添加到您的.pro
文件中。
【讨论】:
【参考方案5】:我在 Arch 和 Debian 上遇到了同样的问题。安装以下软件包后,一切正常。
ARCH:
额外/gstreamer aur/gstreamer0.10 额外/gst-plugins-base-libs 额外/gst-plugins-good 额外/gst-libav 额外/qt5-工具使用yay
安装:
yay -S gstreamer gstreamer0.10 gst-plugins-base-libs gst-plugins-good gst-libav qt5-tools
Debian:
libqt5multimedia5-plugins gstreamer1.0-plugins-good gstreamer1.0-libav libqt5multimediagsttools5用apt
安装:
apt install libqt5multimedia5-plugins
【讨论】:
以上是关于无法在 QML 中播放视频的主要内容,如果未能解决你的问题,请参考以下文章