如何在SoundEffect qml

时间:2019-05-02 15:17:47

标签: android qt qml

我正在编写一个小型android音板应用程序,并且在ListDelegate中使用了SoundEffect组件。但是在按下一定数量的按钮(调用sound.play())后,它停止播放声音,并且在应用程序输出中出现此错误:

  

E libOpenSLES:对象太多W libOpenSLES:离开

     

Engine :: CreateAudioPlayer(SL_RESULT_MEMORY_FAILURE)

     

W声音:无法创建AudioPlayer

在ListDelegate内部:

Rectangle{

   ...

  Button{
    id: delegateButton
    anchors.fill: parent
    Material.elevation: 0
    onPressed: sound.play();
  }

  SoundEffect{
    id: sound
    source: soundsource
  }
}

1 个答案:

答案 0 :(得分:0)

我可以通过将声音效果组件移出委托来修复它,并在单击按钮时动态更改音频源,如下所示:

在委托人内部:

Rectangle{
 signal tapped();
   ...

  Button{
    id: delegateButton
    anchors.fill: parent
    Material.elevation: 0
    onPressed: tapped()
  }
}

在我的主页内:

SoundEffect{
  id: sound
}

 ...

ListView{
  delegate:{
    ...

    onTapped: {sound.source = audiosource; sound.play()}
  }
}