QML нет звука из звукового эффекта, если не воспроизводится фоновая музыка

#qt #qml #background-music #soundeffect

#qt #qml #фоновая музыка #soundeffect

Вопрос:

Я запускаю приложение QML с использованием Qt 5.14.2 и замечаю, что мои звуковые эффекты не будут воспроизводиться (генерировать звук), если у меня также не будет воспроизводиться фоновая музыка. Я подтвердил, что консоль не регистрирует ошибок, допустимый аудиофайл и т. Д. (11 кбит / с, 16-битный PCM, 1 канал, wav). Я также попробовал частоту дискретизации 41 Кбит / с, без изменений.

Я могу воспроизвести это с помощью Win32 и Android a8. Аудиофайлы являются файлами ресурсов (не QRC).

Пример кода:

 SoundEffect {
    id: effect
    source  : "click.wav"
    loops : 1
    volume : 0.8
    muted : false
}

function play() {
    effect.play()
}
  

Проблема с образцом кода в этой ситуации заключается в том, что может работать упрощенный образец. Возможно, что при первом воспроизведении стереофонического файла 48k каким-то образом происходит сбой в аудиоплеере — найти минимально воспроизводимый пример нереально. Так что, надеюсь, кто-то знает об общей проблеме Qt по этой теме. Я вижу сообщения, относящиеся к 2017 году, с аналогичными вопросами, но без решения.

Файл wav должен воспроизводиться независимо от воспроизведения других файлов wav / звуковых эффектов.

Важно отметить, что аудиофайл звукового эффекта длится 0,477 секунды.

Ответ №1:

После долгих проб и ошибок я сузил это до проблемы с аудиоплеером Qt. Когда аудиофайл короткий (например, 0,5 секунды), он иногда не воспроизводится как звуковой эффект.

В качестве решения я добавил 1 секунду тишины в конец аудиофайла, и теперь он воспроизводится последовательно.