added VlcMediaPlayer, still trouble with pulseAudio
This commit is contained in:
parent
6f5c9138a8
commit
a4006ea015
7 changed files with 51 additions and 8 deletions
|
|
@ -2,6 +2,7 @@ TEMPLATE = app
|
||||||
|
|
||||||
QT += qml quick
|
QT += qml quick
|
||||||
CONFIG += c++11
|
CONFIG += c++11
|
||||||
|
LIBS += -lVLCQtCore -lVLCQtQml
|
||||||
|
|
||||||
SOURCES += main.cpp \
|
SOURCES += main.cpp \
|
||||||
models/NavigationListModel.cpp \
|
models/NavigationListModel.cpp \
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 4.2.0, 2018-10-19T13:26:21. -->
|
<!-- Written by QtCreator 4.2.0, 2018-10-24T21:05:48. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,30 @@
|
||||||
#include "MusicController.h"
|
#include "MusicController.h"
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
#include <models/MusicModel.h>
|
#include <models/MusicModel.h>
|
||||||
|
|
||||||
MusicController::MusicController(QObject *parent) : QObject(parent),
|
MusicController::MusicController(QObject *parent) : QObject(parent)
|
||||||
mModel(new MusicModel(this))
|
|
||||||
{
|
{
|
||||||
|
mVlc = new VlcInstance(VlcCommon::args(), this);
|
||||||
|
mModel = new MusicModel(mVlc, this);
|
||||||
|
mPlayer = new VlcMediaPlayer(mVlc);
|
||||||
|
|
||||||
|
connect(mPlayer, &VlcMediaPlayer::error, [this](){
|
||||||
|
qDebug() << "playerError";
|
||||||
|
});
|
||||||
|
|
||||||
connect(mModel, &MusicModel::navigateTo, this, &MusicController::navigateTo);
|
connect(mModel, &MusicModel::navigateTo, this, &MusicController::navigateTo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MusicController::~MusicController()
|
||||||
|
{
|
||||||
|
mPlayer->deleteLater();
|
||||||
|
}
|
||||||
|
|
||||||
void MusicController::initPlayer(NavigationItemModel *item)
|
void MusicController::initPlayer(NavigationItemModel *item)
|
||||||
{
|
{
|
||||||
mModel->init(item);
|
mModel->init(item);
|
||||||
|
mPlayer->open(mModel->getMedia());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MusicController::setContext(QQmlContext *context)
|
void MusicController::setContext(QQmlContext *context)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
#include <QQmlContext>
|
#include <QQmlContext>
|
||||||
#include <models/NavigationItemModel.h>
|
#include <models/NavigationItemModel.h>
|
||||||
|
|
||||||
|
#include <VLCQtCore/Common.h>
|
||||||
|
#include <VLCQtCore/Instance.h>
|
||||||
|
#include <VLCQtCore/MediaPlayer.h>
|
||||||
|
|
||||||
class MusicModel;
|
class MusicModel;
|
||||||
|
|
||||||
class MusicController : public QObject
|
class MusicController : public QObject
|
||||||
|
|
@ -16,6 +20,7 @@ signals:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MusicController(QObject *parent = Q_NULLPTR);
|
MusicController(QObject *parent = Q_NULLPTR);
|
||||||
|
~MusicController();
|
||||||
|
|
||||||
void initPlayer(NavigationItemModel* item);
|
void initPlayer(NavigationItemModel* item);
|
||||||
|
|
||||||
|
|
@ -24,9 +29,12 @@ public:
|
||||||
private:
|
private:
|
||||||
void setContextProperties();
|
void setContextProperties();
|
||||||
|
|
||||||
QQmlContext* mContext;
|
QQmlContext* mContext = Q_NULLPTR;
|
||||||
|
|
||||||
MusicModel* mModel;
|
MusicModel* mModel;
|
||||||
|
|
||||||
|
VlcInstance* mVlc;
|
||||||
|
VlcMediaPlayer* mPlayer;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MUSICCONTROLLER_H
|
#endif // MUSICCONTROLLER_H
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
#include <QQmlApplicationEngine>
|
#include <QQmlApplicationEngine>
|
||||||
|
|
||||||
#include "controllers/NavigationController.h"
|
#include "controllers/NavigationController.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QGuiApplication app(argc, argv);
|
QGuiApplication app(argc, argv);
|
||||||
|
|
||||||
QQmlApplicationEngine engine;
|
QQmlApplicationEngine engine;
|
||||||
|
|
||||||
/// @todo add config parser to determine root path.
|
/// @todo add config parser to determine root path.
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,25 @@
|
||||||
#include "MusicModel.h"
|
#include "MusicModel.h"
|
||||||
|
|
||||||
MusicModel::MusicModel(QObject *parent) : QObject(parent)
|
MusicModel::MusicModel(VlcInstance* instance, QObject *parent) : QObject(parent),
|
||||||
|
mVlc(instance)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MusicModel::~MusicModel()
|
||||||
|
{
|
||||||
|
if(mMedia)
|
||||||
|
mMedia->deleteLater();
|
||||||
|
}
|
||||||
|
|
||||||
void MusicModel::init(NavigationItemModel *item)
|
void MusicModel::init(NavigationItemModel *item)
|
||||||
{
|
{
|
||||||
mCurrentItem = item;
|
mCurrentItem = item;
|
||||||
emit currentItemChanged();
|
emit currentItemChanged();
|
||||||
|
|
||||||
|
if(mMedia)
|
||||||
|
delete mMedia;
|
||||||
|
mMedia = new VlcMedia(mCurrentItem->getPath(), true, mVlc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MusicModel::navigateBack()
|
void MusicModel::navigateBack()
|
||||||
|
|
@ -26,6 +37,11 @@ NavigationItemModel *MusicModel::getCurrentItem()
|
||||||
return mCurrentItem;
|
return mCurrentItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VlcMedia *MusicModel::getMedia()
|
||||||
|
{
|
||||||
|
return mMedia;
|
||||||
|
}
|
||||||
|
|
||||||
bool MusicModel::isPlaying()
|
bool MusicModel::isPlaying()
|
||||||
{
|
{
|
||||||
return mIsPlaying;
|
return mIsPlaying;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
#include <models/NavigationItemModel.h>
|
#include <models/NavigationItemModel.h>
|
||||||
|
#include <VLCQtCore/Media.h>
|
||||||
|
|
||||||
class MusicModel : public QObject
|
class MusicModel : public QObject
|
||||||
{
|
{
|
||||||
|
|
@ -16,7 +17,8 @@ signals:
|
||||||
void currentItemChanged();
|
void currentItemChanged();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MusicModel(QObject *parent = Q_NULLPTR);
|
MusicModel(VlcInstance* instance, QObject *parent = Q_NULLPTR);
|
||||||
|
~MusicModel();
|
||||||
|
|
||||||
void init(NavigationItemModel* item);
|
void init(NavigationItemModel* item);
|
||||||
|
|
||||||
|
|
@ -25,11 +27,15 @@ public:
|
||||||
|
|
||||||
NavigationItemModel *getCurrentItem();
|
NavigationItemModel *getCurrentItem();
|
||||||
|
|
||||||
|
VlcMedia *getMedia();
|
||||||
|
|
||||||
bool isPlaying();
|
bool isPlaying();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool mIsPlaying = false;
|
bool mIsPlaying = false;
|
||||||
NavigationItemModel* mCurrentItem = Q_NULLPTR;
|
NavigationItemModel* mCurrentItem = Q_NULLPTR;
|
||||||
|
VlcMedia* mMedia = Q_NULLPTR;
|
||||||
|
VlcInstance* mVlc;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MUSICMODEL_H
|
#endif // MUSICMODEL_H
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue