Qt Qml 多媒体播放视频(MediaPlayer)遇到的问题及解决方法

40 篇文章 0 订阅


前言

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路径中的"\“需要使用转义字符”\\"代替

备注:

  1. MediaPlayer经测试,必须使用file(绝对路径/相对路径)。source属性不支持qrc资源。
默认使用URL路径::/res/lock_blue.png
使用索引资源文件:"qrc:///filepath"

三、路径中的转义字符

转义前:"C:\temp\test.txt";
转义后:"C:\\temp\\test.txt";

参考:Qt的转义字符

测试版本

Qt5.6
Qt6.2

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值