4

アプリケーションが大量のメモリを消費し始めます。最初のショットは MNG アニメーション キャッシュでしたが、共有されていないことがわかります。そこで、コンストラクタ/デストラクタでデバッグ プリントを使用して TestItem を作成しました。ビデオ停止信号を介してソースが変更されたときに、Loader が機能しないというプロパティが表示されました。

import QtQuick 1.1
import QtMultimediaKit 1.1

Rectangle {
    id:root
    width: 800
    height: 480

    Video {
        id: video1
        anchors.fill: parent
        source: "test.mp4" 
        onStopped: {
            loader1.source= "Test2.qml";
        }
    }
    Loader {
        id:loader1
        onSourceChanged: {
            console.debug("source changed to "+source)
        }
    }
    MouseArea {
        anchors.fill: parent
        onPressed: {
            loader1.source= "Test1.qml";
            video1.play();
        }
    }
}

したがって、4 回クリックすると、次のようなコンソール出力が得られます。

TestItem(0x1b4fc00) 
source changed to file:///opt/Test/qml/TestLoaderBug/Test1.qml
TestItem(0x2047ba0) 
source changed to file:///opt/Test/qml/TestLoaderBug/Test2.qml
TestItem(0x2046720) 
source changed to file:///opt/Test/qml/TestLoaderBug/Test1.qml
~ TestItem(0x2047ba0) 
TestItem(0x2050560) 
source changed to file:///opt/Test/qml/TestLoaderBug/Test2.qml
TestItem(0x204fad0) 
source changed to file:///opt/Test/qml/TestLoaderBug/Test1.qml
~ TestItem(0x2050560) 
TestItem(0x2051e40) 
source changed to file:///opt/Test/qml/TestLoaderBug/Test2.qml
TestItem(0x2051330) 
source changed to file:///opt/Test/qml/TestLoaderBug/Test1.qml
~ TestItem(0x2051e40) 
TestItem(0x2052e90) 
source changed to file:///opt/Test/qml/TestLoaderBug/Test2.qml

アプリケーションを閉じると、残りのオブジェクトはすべて削除されます。

~ TestItem(0x1b4fc00) 
~ TestItem(0x2046720) 
~ TestItem(0x204fad0) 
~ TestItem(0x2051330) 
~ TestItem(0x2052e90) 

onStopped シグナルがそのような動作を引き起こすのはなぜですか? これに対する修正はありますか?

libqt4-declarative(バージョン: 4:4.8.1-0ubuntu4.2) および libdeclarative-multimedia(バージョン: 1.2.0-1ubuntu2) を使用して Ubuntu 12.04 でテスト済み。

4

0 に答える 0