由于QML中的主线程阻塞错误,无法启动视频表面



我为网络摄像头显示编写了一个示例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组件有关。

相关内容

  • 没有找到相关文章

最新更新