【问题标题】:Setting volume per instance in QML Audio/Video elements?在 QML 音频/视频元素中设置每个实例的音量?
【发布时间】:2014-01-29 16:49:09
【问题描述】:

我想在 QML 中淡入视频声音的同时淡出音频文件的音量。 动画应该没问题,但我在这里碰壁了。 似乎volume 属性以某种方式在 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 版本,以防万一。

【问题讨论】:

  • 您可以尝试在您的Keys.onPressed 处理程序中执行event.accepted = true; 吗?我的猜测是这个事件再次被抛出到另一个小部件。请参阅qt-project.org/doc/qt-5.0/qtquick/…qt-project.org/doc/qt-5.0/qtquick/… 了解更多信息
  • 谢谢,但这无济于事。两个处理程序仍然被调用......另外,这只是一个演示我的问题的最小示例,在实际代码中,音量变化不是由鼠标输入触发的,而是由其他一些事件触发的。
  • 不知道。顺便说一句,您可以尝试联系 IRC 中的一些 QtQuick 开发人员。这绝对可能是一个错误。

标签: qt qml


【解决方案1】:

卡卡杜,你是对的。我打了this bug,提供的补丁修复了它! 有了那个补丁,一切都照原样运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多