Воспроизведение видео с помощью QMediaplayer из буфера и добавления буфера во время воспроизведения видео - PullRequest
0 голосов
/ 06 июня 2019

Я попытался воспроизвести видео из буфера и добавить буфер во время воспроизведения, чтобы два или более видео воспроизводились друг за другом без каких-либо задержек, так как это одно видео, я пытался использовать 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 и тот же результат, в результате проигрывается только первое видео, и оно останавливается, так что вы можете помочь мне сделать эту работу? то, что я сделал неправильно в своем коде, позволило второму видео не работать гладко после первого, и это результат, который я хочу.

...