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

这篇具有很好参考价值的文章主要介绍了Qt Qml 多媒体播放视频(MediaPlayer)遇到的问题及解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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文章来源地址https://www.toymoban.com/news/detail-752545.html

到了这里,关于Qt Qml 多媒体播放视频(MediaPlayer)遇到的问题及解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包