新增视频播放mdk内核
This commit is contained in:
55
video/playmdk/mdk/mdkwidget.cpp
Normal file
55
video/playmdk/mdk/mdkwidget.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
#include "mdkwidget.h"
|
||||
|
||||
MdkWidget::MdkWidget(QWidget *parent): OpenGLWidget(parent)
|
||||
{
|
||||
player = new mdk::Player;
|
||||
player->setRenderCallback([this](void *) {
|
||||
QMetaObject::invokeMethod(this, "update", Qt::QueuedConnection);
|
||||
});
|
||||
}
|
||||
|
||||
MdkWidget::~MdkWidget()
|
||||
{
|
||||
makeCurrent();
|
||||
mdk::Player::foreignGLContextDestroyed();
|
||||
doneCurrent();
|
||||
}
|
||||
|
||||
void MdkWidget::setUrl(const QString &url)
|
||||
{
|
||||
player->setMedia(url.toUtf8().constData());
|
||||
}
|
||||
|
||||
void MdkWidget::play()
|
||||
{
|
||||
player->set(mdk::State::Playing);
|
||||
}
|
||||
|
||||
void MdkWidget::pause()
|
||||
{
|
||||
player->set(mdk::State::Paused);
|
||||
}
|
||||
|
||||
void MdkWidget::stop()
|
||||
{
|
||||
player->set(mdk::State::Stopped);
|
||||
}
|
||||
|
||||
void MdkWidget::initializeGL()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MdkWidget::resizeGL(int w, int h)
|
||||
{
|
||||
float ratio = 1;
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5,6,0))
|
||||
ratio = devicePixelRatioF();
|
||||
#endif
|
||||
player->setVideoSurfaceSize(w * ratio, h * ratio, this);
|
||||
}
|
||||
|
||||
void MdkWidget::paintGL()
|
||||
{
|
||||
player->renderVideo(this);
|
||||
}
|
||||
Reference in New Issue
Block a user