1. 问题
在Linux QML多媒体VideoOutput开发中遇到如下问题:
- 程序功能:Camera采集视频,VideoOutput显示
- 直接在Ubuntu Qt Creator中远程部署到开发板运行,显示正常。
- 但是如果直接到开发板目录中运行,视频被window组件覆盖。
c
import QtQuick 2.15
import QtQuick.Window 2.15
import QtMultimedia 5.15
import QtQuick.Controls 2.15
Window {
width: 500
height: 1000
y: 200
visible: true
title: qsTr("Hello World")
VideoOutput{
width: 300
height: 200
fillMode: Image.PreserveAspectFit
visible: true
source: _mCamera
}
Camera{
id: _mCamera
}
}
2. 解决方案
不知道什么原因,暂时的解决方案是用另一个window
组件包裹VideoOutput,并将这个window
组件的颜色设置为透明,代码如下:
c
import QtQuick 2.15
import QtQuick.Window 2.15
import QtMultimedia 5.15
import QtQuick.Controls 2.15
Window {
width: 500
height: 1000
y: 200
visible: true
title: qsTr("Hello World")
Window {
width: 400
height: 500
visible: true
color: "transparent"
title: qsTr("Hello World")
VideoOutput{
width: 300
height: 200
fillMode: Image.PreserveAspectFit
visible: true
source: _mCamera
}
}
Camera{
id: _mCamera
}
}