我为网络摄像头显示编写了一个示例QML-qt5应用程序,给出了错误: 操作系统:UBUNTU 13.04 Qt Creator 2.7.1基于Qt 5.0.2(64位)
Failed to start video surface due to main thread blocked.
Failed to start video surface
CameraBin error: "Internal data flow error."
PS:此错误随机发生,大部分时间都是如此;比如20次说18-19次
以下是代码:
import QtQuick 2.0
import QtMultimedia 5.0
Item {
width: 320
height: 240
VideoOutput {
id:camOutput
source: camera
anchors.fill: parent
focus : visible // to receive focus and capture key events when visible
}
Camera {
id: camera
imageProcessing.whiteBalanceMode: CameraImageProcessing.WhiteBalanceFlash
exposure {
exposureCompensation: -1.0
exposureMode: Camera.ExposurePortrait
}
flash.mode: Camera.FlashRedEyeReduction
imageCapture {
onImageCaptured: {
photoPreview.source = preview // Show the preview in an Image
}
}
}
Image {
id: photoPreview
}
}
答案 0 :(得分:1)
这是Qt中的一个错误 - 请参阅QTBUG-39567。
撰写这篇文章(2017年6月)时,没有实际的解决方案,但建议采取解决方法:
启动应用程序时不要立即播放视频 - 在启动视频播放器之前等待一秒钟。
我测试了这个,它解决了我播放视频的问题。
在您的情况下,这不是视频播放器,但在我看来,这与所有QtMultimedia
组件相关。