QMultimedia Video
Verfasst: 13. Januar 2015 12:28
Moin zusammen,
ich versuche mich gerade an einer kleinen Videoplayer Aufgabe. Ich versuche ein Video abzuspielen, welches ich zu Laufzeiten mit einem berechneten Wert in der Abspielgeschwindigkeit zu verändern. Hierfür habe ich mir ein kleines Testprogramm geschrieben um mit der Mediabibli vertraut zu werden.
Über die Pushbuttons änder ich jeweils die Abspielgeschwindigkeit nach oben oder unten, leider liegt hier auch mein Problem. Der Wert _player->playbackRate(); ändert sich aber im Video ansich tut sich Null. Hat jemand hierfür eine Lösung, oder ein Vorschlag was sich in Verbindung mit Qt für die Videoverarbeitung anbietet. Versuche es später mal mit der LibVLC .... schön wäre jedoch eine unkomplizierte Lösung
Besten Gruß
Mr.Crank
ich versuche mich gerade an einer kleinen Videoplayer Aufgabe. Ich versuche ein Video abzuspielen, welches ich zu Laufzeiten mit einem berechneten Wert in der Abspielgeschwindigkeit zu verändern. Hierfür habe ich mir ein kleines Testprogramm geschrieben um mit der Mediabibli vertraut zu werden.
Code: Alles auswählen
#include "videoplayer.h"
#include "ui_videoplayer.h"
VideoPlayer::VideoPlayer(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::VideoPlayer)
{
ui->setupUi(this);
_player = new QMediaPlayer(this);
_videoWidget = new QVideoWidget();
_slower = new QPushButton("slow down");
_faster = new QPushButton("speed up");
connect(_slower, SIGNAL(clicked()), this, SLOT(slowDown()));
connect(_faster, SIGNAL(clicked()), this, SLOT(speedUp()));
QString fileName = QFileDialog::getOpenFileName(this,"Open",QDir::homePath());
_player->setMedia(QUrl::fromLocalFile(fileName));
qDebug()<<fileName;
//create layout
_player->setVideoOutput(_videoWidget);
QBoxLayout* layout = new QVBoxLayout();
layout->addWidget(_videoWidget);
layout->addWidget(_slower);
layout->addWidget(_faster);
ui->centralWidget->setLayout(layout);
_player->play();
qDebug()<<_player->errorString();
qDebug()<<_player->mediaStatus();
qDebug()<<_player->duration();
qDebug()<<_player->playbackRate();
}
VideoPlayer::~VideoPlayer()
{
delete ui;
}
void VideoPlayer::slowDown(void)
{
_speed = _speed-0.10;
_player->setPlaybackRate(_speed);
qDebug()<<_player->duration();
qDebug()<<_player->playbackRate();
}
void VideoPlayer::speedUp(void)
{
_speed = _speed+0.10;
_player->setPlaybackRate(_speed);
qDebug()<<_player->duration();
qDebug()<<_player->playbackRate();
}
Besten Gruß
Mr.Crank