5 #ifndef MEDIA_AUDIOONLY
9 class Media : public QObject {
23 Media(QObject *parent = nullptr) : QObject(parent) {
24 qRegisterMetaType<Media::State>("Media::State");
26 virtual void setAudioOnly(bool value) = 0;
27 #ifndef MEDIA_AUDIOONLY
28 virtual void setRenderer(const QString &name) = 0;
29 virtual QWidget *videoWidget() = 0;
30 virtual void playSeparateAudioAndVideo(const QString &video, const QString &audio) = 0;
31 virtual void snapshot() = 0;
33 virtual void init() = 0;
35 virtual Media::State state() const = 0;
37 virtual void play(const QString &file) = 0;
38 virtual void play() = 0;
39 virtual void pause() = 0;
40 virtual void stop() = 0;
41 virtual void seek(qint64 ms) = 0;
42 virtual void relativeSeek(qint64 ms) = 0;
43 virtual QString file() const = 0;
45 virtual void setBufferMilliseconds(qint64 value) = 0;
46 virtual void setUserAgent(const QString &value) = 0;
48 virtual void enqueue(const QString &file) = 0;
49 virtual void clearQueue() = 0;
50 virtual bool hasQueue() const = 0;
52 virtual qint64 position() const = 0;
53 virtual qint64 duration() const = 0;
54 virtual qint64 remainingTime() const = 0;
56 virtual qreal volume() const = 0;
57 virtual void setVolume(qreal value) = 0;
59 virtual bool volumeMuted() const = 0;
60 virtual void setVolumeMuted(bool value) = 0;
62 virtual QString errorString() const = 0;
65 void error(const QString &message);
67 void bufferStatus(qreal value);
72 void stateChanged(Media::State state);
73 void positionChanged(qint64 ms);
76 void volumeChanged(qreal value);
77 void volumeMutedChanged(bool value);
78 #ifndef MEDIA_AUDIOONLY
79 void snapshotReady(const QImage &image);