Воспроизведение видео с помощью QMediaplayer из буфера и добавления буфера во время воспроизведения видео

Я попытался воспроизвести видео из буфера и добавить буфер во время воспроизведения, чтобы два или более видео воспроизводились друг за другом без каких-либо задержек, поскольку это одно видео, я пытался использовать QMediaPlaylist и добавлять список во время выполнения, это работало, но Есть заметная задержка между видео, я использую этот код в кнопке воспроизведения

void MainWindow::on_pushButton_2_clicked()
{
    player = new QMediaPlayer(this);

    QFile file("D:/video/first.mp4");
    file.open(QIODevice::ReadOnly);
    arr = new QByteArray();
    arr->append(file.readAll());
    file.close();
    buffer = new QBuffer(arr);
    buffer->open(QIODevice::ReadWrite);

    player->setVideoOutput(ui->widget);

    player->setMedia(QMediaContent(), buffer);
    player->play();
}

и кнопка для добавления второго видео во время выполнения, которое здесь я делаю много разных попыток

void MainWindow::on_pushButton_3_clicked()
{
    QFile file("D:/video/second.mp4");
    file.open(QIODevice::ReadOnly);
    QByteArray temp = file.readAll();
    //arr->append(temp, temp.size()); //first to append the QByteArray did not work
    buffer->write(temp.data(), temp.size()); //second write to the buffer but not work
    file.close();
    qDebug() << "Appeneded";
}

первый, который добавляет массив, но он не работает, так же, как когда я установил для буфера значение ReadWrite flage и тот же результат, в результате проигрывается только первое видео, и оно останавливается, так что вы можете помочь мне сделать эта работа? то, что я сделал неправильно в своем коде, позволило второму видео не работать гладко после первого, и это результат, который я хочу.

0 ответов

Другие вопросы по тегам