加载.avi文件时,视频QML类型崩溃(0xC0000005:访问冲突)

时间:2018-12-10 14:41:03

标签: c++ visual-studio qt qml qtmultimedia

当我尝试加载视频QML类型的文件时,由于访问冲突导致应用程序崩溃。我正在使用msvc2017编译器在Windows上运行C ++ / Qt 11.1应用程序。

我目前正在尝试使用以下代码在应用程序中循环播放简单的视频:

import QtQuick 2.11
import QtMultimedia 5.8

Video {
    id: videoPlayer
    anchors.fill: parent
    source: "C:/Users/Me/Desktop/video.avi"
    autoLoad: true
    autoPlay: false
    focus: true
    fillMode: VideoOutput.PreserveAspectFit
    loops: MediaPlayer.Infinite
    muted: true
}

执行此代码时,以下调用堆栈出现异常:

Visual Studio Callstack

QtMultimedia模块内部的QAbstractVideoSurface信号似乎无法正常工作。我想知道的是,此异常不会总是发生,而是仅在大约4/5的应用程序运行中发生(如果我将autoLoad设置为false,并通过单击触发加载,我有时会以某种方式工作) 。同样,它仅在发行版构建配置中发生。

我已经在考虑编解码器问题,但是我可以使用带有不同编解码器的不同视频文件来重现它。

对我来说,这实际上看起来像是一个线程问题,但是由于实际上我只是想在主UI线程中呈现上面的代码,因此我目前还不知道它是如何出现的。

也许有人已经遇到过类似或关联的问题?

已经感谢!

0 个答案:

没有答案