行业知识
Qt Qml 多媒体播放视频(MediaPlayer)遇到的问题及解决方法
2026-11-02 09:30:31
来源:互联网转载
文章目录
- 前言
- 一、视频无法播放的原因
- 1. 目录结构
- 2. 正确代码
- 二、绝对路径/相对路径
- 三、路径中的转义字符
- ���试版本
前言
Qml 多媒体播放视频开发过程中遇到的问题,记录一下。
()一、视频无法播放的原因
创建的Qt Quick Ui Prototype工程,视频播放正常。但是相同的代码在Qt Quick Application(compat)中却不能正常显示。
1. 目录结构
- Qt Quick Ui Prototype目录结构
qml|- project_1|- project_1.qml|- project_1.qmlproject|- project_1.qmlproject.user|- test.mp4
- Qt Quick Application(compat) 目录结构
qml|- build-untitled1-Desktop_Qt_6_5_1_MinGW_64_bit-Debug|- debug|- project_2.exe|- release|- .qmake.stash|- Makefile|- Makefile.Debug|- Makefile.Release|- project_2|- project_2.qml|- project_2.qmlproject|- project_2.qmlproject.user|- test.mp4
2. 正确代码
- Qt Quick Ui Prototype 工程
这里没有什么需要注意的,按照Qt帮助文档的代码来就行了,显示是正常的。
import QtQuickimport QtMultimediaimport QtQuick.ControlsWindow { id:root width: 640 height: 480 visible: true MediaPlayer{ id:player source: "test.mp4"; videoOutput: videoOutput } VideoOutput{ id:videoOutput width: root.width-80; anchors.centerIn: parent } Component.onCompleted: { player.play() }}- Qt Quick Application(compat) 工程
注意事项见注释。
import QtQuickimport QtMultimediaimport QtQuick.ControlsWindow { id:root width: 640 height: 480 visible: true MediaPlayer{ id:player //相对路径,基于build-untitled1-Desktop_Qt_6_5_1_MinGW_64_bit-Debug文件夹 source: "file:../project_2/test.mp4"//绝对路径, 下面的代码也是可以正常运行的,注意转义字符"\"//source: "file:\D:\qml\project_2\test.mp4";//ubuntu系统,绝对路径,注意这里 三个/(///)//source: "file:///home/book/test.mp4" videoOutput: videoOutput } VideoOutput{ id:videoOutput width: root.width-80; anchors.centerIn: parent } Component.onCompleted: { player.play() }}二、绝对路径/相对路径
- 相对路径
file:相对路径
()备注: 相对路径基于 build-untitled1-Desktop_Qt_6_5_1_MinGW_64_bit-Debug 文件夹
- 绝对路径
file://绝对路径
备注:windows路径中的"\“需要使用转义字符”\\"代替
备注:
- MediaPlayer经测试,必须使用file(绝对路径/相对路径)。source属性不支持qrc资源。
默认使用URL路径::/res/lock_blue.png使用索引资源文件:"qrc:///filepath"
三、路径中的转义字符
转义前:"C:\temp\test.txt";转义后:"C:\temp\test.txt";
参考:Qt的转义字符
测试版本
Qt5.6
Qt6.2
- 绝对路径
- 相对路径
- Qt Quick Application(compat) 工程
- Qt Quick Ui Prototype 工程
- Qt Quick Application(compat) 目录结构
- Qt Quick Ui Prototype目录结构