我正在编写一个小型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
}
}
答案 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()}
}
}