forked from ghostfox/qyouradio
55 lines
1.3 KiB
C++
55 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <QtMultimedia>
|
|
#include <QtConcurrent/QtConcurrent>
|
|
#include <QDebug>
|
|
#include <QObject>
|
|
#include <QNetworkAccessManager>
|
|
#include <QtQmlIntegration/qqmlintegration.h>
|
|
|
|
class Player : public QObject
|
|
{
|
|
Q_OBJECT
|
|
QML_SINGLETON
|
|
QML_ELEMENT
|
|
|
|
Q_PROPERTY(bool hasVideo READ hasVideo NOTIFY hasVideoChanged FINAL)
|
|
Q_PROPERTY(bool loading READ loading NOTIFY loadingChanged FINAL)
|
|
Q_PROPERTY(bool failed READ failed NOTIFY failedChanged FINAL)
|
|
Q_PROPERTY(bool playing READ playing NOTIFY playingChanged FINAL)
|
|
Q_PROPERTY(float volume READ volume WRITE setVolume NOTIFY volumeChanged FINAL)
|
|
|
|
public:
|
|
Player(QObject *parent = nullptr);
|
|
~Player();
|
|
|
|
bool hasVideo() const;
|
|
bool loading() const;
|
|
bool failed() const;
|
|
bool playing() const;
|
|
float volume() const;
|
|
|
|
void setVolume(float newVolume);
|
|
|
|
public slots:
|
|
void loadVideo(QString id);
|
|
void unloadVideo();
|
|
void play();
|
|
void pause();
|
|
void stop();
|
|
|
|
signals:
|
|
void hasVideoChanged();
|
|
void loadingChanged();
|
|
void failedChanged();
|
|
void playingChanged();
|
|
void volumeChanged();
|
|
|
|
private:
|
|
QMediaPlayer player;
|
|
QAudioOutput output;
|
|
QNetworkAccessManager manager;
|
|
|
|
bool m_failed = false;
|
|
};
|