声音效果(Sounds Effects)

当播放声音效果时,从请求播放到真实响应播放的响应时间非常重要。在这种情况下,SoundEffect元素将会派上用场。设置source属性,一个简单调用play函数会直接开始播放。

当敲击屏幕时,可以使用它来完成音效反馈,如下所示:

  1. SoundEffect {
  2. id: beep
  3. source: "beep.wav"
  4. }
  5. Rectangle {
  6. id: button
  7. anchors.centerIn: parent
  8. width: 200
  9. height: 100
  10. color: "red"
  11. MouseArea {
  12. anchors.fill: parent
  13. onClicked: beep.play()
  14. }
  15. }

这个元素也可以用来完成一个配有音效的转换。为了从转换触发,使用ScriptAction元素。

  1. SoundEffect {
  2. id: swosh
  3. source: "swosh.wav"
  4. }
  5. transitions: [
  6. Transition {
  7. ParallelAnimation {
  8. ScriptAction { script: swosh.play(); }
  9. PropertyAnimation { properties: "rotation"; duration: 200; }
  10. }
  11. }
  12. ]

除了调用play函数,在MediaPlayer中类似属性也可以使用。比如volume和loops。loops可以设置为SoundEffect.Infinite来提供无限重复播放。停止播放调用stop函数。

注意

当后台使用PulseAudio时,stop将不会立即停止,但会阻止继续循环。这是由于底层API的限制造成的。