2014-01-28 32 views
0

我想淡出音頻文件的音量,同時淡入QML中的視頻聲音。 這應該不是動畫的問題,但我在這裏打牆。 似乎volume屬性在QML中的所有媒體元素的所有實例之間以某種方式共享。例如,見下面的代碼:在QML音頻/視頻元素中設置每個實例的音量?

Rectangle 
{ 
    id:mainScreen 
    focus: true 

    Video 
    { 
     id:video 
     anchors.fill: parent 
     source: "path/to/file.mp4"; 
     volume:1 
     onVolumeChanged: console.warn("video: "+volume) 
     autoPlay: true 
    } 
    Audio 
    { 
     source: "path/to/file.mp3"; 
     id:audio 
     volume:1 
     onVolumeChanged: console.warn("audio: "+volume) 
     autoPlay: true 
    } 


    Keys.onPressed: 
    { 
     audio.volume = Math.random(1); 
    } 
} 

當我按一個鍵,既videoaudioonVolumeChanged -Handlers被調用。 有沒有辦法獨立控制元素的體積?

或者我應該提交一份Qt錯誤報告?這是Qt 5.2.0的OpenGL MSVC2010構建以防萬一。

+0

您可以嘗試在'Keys.onPressed'處理程序中執行'event.accepted = true;'嗎?我的猜測是,這個事件再次拋出到另一個小部件。請參閱http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-keys.html#onPressed-signal和http://qt-project.org/doc/qt-5.0/qtquick/qml -qtquick2-keyevent.html#accepted-prop獲取更多信息 – Kakadu

+0

謝謝,但這並沒有幫助。這兩個處理程序仍然被稱爲...此外,這只是一個最小的例子,它演示了我的問題,在真實代碼中,音量變化不是由鼠標輸入觸發的,而是由其他事件觸發的。 – anderas

+0

不知道。順便說一句,你可以嘗試訪問IRC中的一些QtQuick開發人員。它絕對可以是一個錯誤。 – Kakadu

回答

0

卡卡杜,你是對的。我打了this bug,提供的補丁修復了它! 使用該修補程序,一切都按原樣運行。