Как исправить «E libOpenSLES: слишком много объектов» в SoundEffect qml - PullRequest
0 голосов
/ 02 мая 2019

Я пишу небольшое приложение для Android и использую компонент SoundEffect внутри ListDelegate.Но после нажатия определенного количества кнопок (вызывается sound.play ()) он перестает воспроизводить звуки, и я получаю следующую ошибку в выводе приложения:

E libOpenSLES: слишком много объектов W libOpenSLES:Оставляя

Engine :: CreateAudioPlayer (SL_RESULT_MEMORY_FAILURE)

W sound: невозможно создать AudioPlayer

Внутри ListDelegate:

Rectangle{

   ...

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

  SoundEffect{
    id: sound
    source: soundsource
  }
}

1 Ответ

0 голосов
/ 04 мая 2019

Мне удалось это исправить, переместив компонент звукового эффекта из делегата и динамически изменив источник звука при нажатии кнопки следующим образом:

Внутри делегата:

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()}
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...