на целевой железке звук глючит, и я пытаюсь понять, в чём вообще дело. Глючит как QSoundEffect, так и QMediaPlayer, но по-разному.
Создаю простейшее консольное приложение с QSoundEffect, воспроизвожу любой WAV 16-bit 44100. Слышу равномерные заикания много раз в секунду и вижу, как в консоль сыпется примерно 20 сообщений в секунду с таким содержанием: ALSA lib ../../../alsa-lib-1.1.6/src/pcm/pcm.c:8424:(snd_pcm_recover) underrun occurredЧерез aplay всё работает нормально. QMediaPlayer сам со себе звук воспроизводит хорошо, но если добавить нагрузку, например, рисовать что-то в QML, то звук тоже начинает заикаться. При этом aplay, запущенный в фоновом процессе даёт идеальный звук даже при нагрузке. Так что возникает вопрос, который почему-то не удаётся нагуглить: в каком потоке работает заполнение буфера? Зависит ли это от используемого бекенда для аудио или это делает Qt код, общий для всех бекендов? А то похоже, что аудио микшируется в главном потоке, чего я никак не ожидал от такой высокоуровневой библиотеки как Qt. И если так, то как я могу это исправить с минимальными усилиями?
пробовал обновить кодеки? QMediaPlayer на линуксе дергает GStreamer
На форуме что-то подобное что у тебя, но не связанно с Qt. Посмотри, мб там решения тебе помогут https://bbs.archlinux.org/viewtopic.php?id=185736
А какие там кодеки? Это же прострейший несжатый wav, там даже декодировать нечего.
Попробуй что-нибудь сделать что ссылку выше дал
На мой случай не похоже. У меня никакого pulseaudio нет. Целевая железка вообще на ARM (Variscite i.MX6 Quad), там embedded linux без иксов. Звук ALSA с GStreamer, я так понимаю.
Обсуждают сегодня