在Linux QML多媒体VideoOutput开发中遇到如下问题:
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
}
}
不知道什么原因,暂时的解决方案是用另一个window组件包裹VideoOutput,并将这个window组件的颜色设置为透明,代码如下:
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
}
}
环境变量不一样。//有问题的环境变量
QT_QUICK_BACKEND=software
QT_GSTREAMER_WINDOW_VIDEOSINK=waylandsink
//删除这两个环境变量
unset QT_QUICK_BACKEND
unset QT_GSTREAMER_WINDOW_VIDEOSINK
//我的开发板环境变量设置的默认位置
/etc/profile.d/qtdeclarative.sh(QT_QUICK_BACKEND)
/etc/profile.d/qtmultimedia.sh(QT_GSTREAMER_WINDOW_VIDEOSINK)