前言
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 QtQuick
import QtMultimedia
import QtQuick.Controls
Window {
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 QtQuick
import QtMultimedia
import QtQuick.Controls
Window {
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的转义字符文章来源:https://www.toymoban.com/news/detail-752545.html
测试版本
Qt5.6
Qt6.2文章来源地址https://www.toymoban.com/news/detail-752545.html
到了这里,关于Qt Qml 多媒体播放视频(MediaPlayer)遇到的问题及解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!