我为网络摄像头显示编写了一个示例QML-qt5应用程序,给出了一个错误:操作系统:UBUNTU 13.04Qt 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
}
}
这是Qt中的一个错误-请参阅QTBUG-39567。
在写这篇文章(2017年6月)时,没有实际的解决方案,但建议采用变通方法:
启动应用程序时不要立即播放视频-再等一秒钟再启动视频播放器
我已经测试过了,它解决了我播放视频的问题。
在您的情况下,这不是一个视频播放器,但在我看来,这与所有QtMultimedia
组件有关。