Потоковое аудио в QtMediaPlayer по сети
У меня есть источник звука в реальном времени, который я хочу воспроизвести напрямую через QMediaPlayer. Я уже могу получать пакеты от QNetworkReply как объект QByteArray, который я добавляю к другому QByteArray, который затем передаю в QBuffer. QBuffer теперь действует как источник мультимедиа. Проблема возникает, когда я устанавливаю источник мультимедиа в этот буфер содержимое буфера не загружается автоматически проигрывателем.
QByteArray *bytes = new QByteArray();
QBuffer *buffer = new QBuffer(bytes);
buffer->open(QIODevice::ReadOnly);
QMediaPlayer *player = new QMediaPlayer(0, QMediaPlayer::StreamPlayback);
player->setMedia(QMediaContent(), buffer); //set buffer as source of media
Слот для обновления кадров.
void updateFrame(int frameId, QByteArray frame){
if(frameId == 1){
bytes->clear(); //clear current buffer on new feed
bytes->append(frame, frame.length());
player->play(); //start playing the stream on first frame
}else{
bytes->append(frame, frame.length()); //add all other frames to the bytes array
}
}
Мой вопрос в том, как содержимое буфера обновляется при каждом обновлении кадра, но он воспроизводит только первый кадр и излучает остановленный сигнал. Я также пытался открыть QBuffer без QByteArray и писать прямо в него, но все равно он ведет себя так же.