Почему мой QMediaPlayer перестает работать после нескольких итераций цикла?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему мой QMediaPlayer перестает работать после нескольких итераций цикла?

Сообщение Anonymous »

Я работаю над проектом, в котором мне нужно непрерывно воспроизводить звук в цикле, используя QMediaPlayer и QAudioOutput. Вот упрощенная версия моего кода, усиливающая эффект:

Код: Выделить всё

QMediaPlayer* _mediaPlayer = new QMediaPlayer();
QAudioOutput* _audioOutput = new QAudioOutput();

_mediaPlayer->setAudioOutput(_audioOutput);
_audioOutput->setVolume(100);

while(true) {
QString audio = "/path/to/file.mp3";

_mediaPlayer->setSource(QUrl::fromLocalFile(audio));
_mediaPlayer->play();
QThread::sleep(1);
}
Проблема, с которой я столкнулся, заключается в том, что звук перестает работать после нескольких итераций цикла. Сначала он воспроизводится нормально, воспроизводит файл file.mp3 в первую секунду, затем перезапускается, но затем останавливается.
Я проверил, что аудиофайлы длиннее одной секунды.Что может быть причиной этой проблемы?
Я использую QT 5.15.3
Перед этим я пытался остановить и приостановить проигрыватель. установка источника, но та же проблема сохраняется.
Проверено, живы ли потоки и работают ли они с помощью _mediaPlayer->thread()->isRunning() и _audioOutput->thread ()->isRunning(), и они работают.
Проверено _mediaPlayer->playbackState() и _mediaPlayer->mediaStatus() во время и до возникновения ошибки; это соответственно QMediaPlayer::PlayingState и QMediaPlayer::BufferedMedia.
Пытался остановить и дождаться воспроизведенияState, чтобы оно стало StoppedState перед установкой на следующем аудио, та же проблема.

Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-a-loop
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»