Files
qyouvideo/player.h

55 lines
1.3 KiB
C
Raw Normal View History

2025-10-16 19:21:35 +02:00
#pragma once
2025-10-16 23:20:10 +02:00
#include <QtMultimedia>
2025-10-18 21:40:02 +02:00
#include <QtConcurrent/QtConcurrent>
2025-10-16 19:21:35 +02:00
#include <QDebug>
#include <QObject>
2025-10-18 21:40:02 +02:00
#include <QNetworkAccessManager>
2025-10-16 19:21:35 +02:00
#include <QtQmlIntegration/qqmlintegration.h>
class Player : public QObject
{
Q_OBJECT
QML_SINGLETON
QML_ELEMENT
2025-10-16 23:20:10 +02:00
2025-10-18 21:40:02 +02:00
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)
2025-10-16 19:21:35 +02:00
public:
Player(QObject *parent = nullptr);
~Player();
2025-10-18 21:40:02 +02:00
bool hasVideo() const;
bool loading() const;
bool failed() const;
bool playing() const;
float volume() const;
2025-10-16 23:20:10 +02:00
void setVolume(float newVolume);
public slots:
2025-10-18 21:40:02 +02:00
void loadVideo(QString id);
void unloadVideo();
void play();
void pause();
void stop();
2025-10-16 23:20:10 +02:00
signals:
2025-10-18 21:40:02 +02:00
void hasVideoChanged();
void loadingChanged();
void failedChanged();
2025-10-16 23:20:10 +02:00
void playingChanged();
void volumeChanged();
private:
QMediaPlayer player;
QAudioOutput output;
2025-10-18 21:40:02 +02:00
QNetworkAccessManager manager;
2025-10-18 21:40:02 +02:00
bool m_failed = false;
2025-10-16 19:21:35 +02:00
};