首页 > 解决方案 > 显示qml时如何在QML中播放声音

问题描述

我需要使用 SoundEffect 在 QML 中播放声音,但是我发现的所有示例都基于某些事件(鼠标单击等)播放声音,但是当显示 qml 时如何播放声音?

这是单击鼠标的示例:

SoundEffect {
     id: playSound
     source: "soundeffect.wav"
 }
 MouseArea {
     id: playArea
     anchors.fill: parent
     onPressed: { playSound.play() }
 }

标签: c++qtqml

解决方案


您可能需要在Component.completed实例化实现组件的对象时发出的信号:

MouseArea {
    id: playArea
    Component.onCompleted: playSound.play()
}

如果它确实是一个图形项目,并且每次项目变得可见时都需要播放声音,则处理visibleChanged信号,例如:

Rectangle {
    id: soundBox
    onVisibleChanged: if(visible) playSound.play()
}

推荐阅读