QMediaObject Class

The QMediaObject class provides a common base for multimedia objects. More...

Header: #include <QMediaObject>
qmake: QT += multimedia
Inherits: QObject
Inherited By:

QAudioDecoder, QCamera, QMediaPlayer, and QRadioTuner

Properties

  • 1 property inherited from QObject

Public Functions

~QMediaObject()
virtual QMultimedia::AvailabilityStatus availability() const
QStringList availableMetaData() const
virtual bool bind(QObject *object)
virtual bool isAvailable() const
bool isMetaDataAvailable() const
QVariant metaData(const QString &key) const
int notifyInterval() const
virtual QMediaService *service() const
void setNotifyInterval(int milliSeconds)
virtual void unbind(QObject *object)
  • 32 public functions inherited from QObject

Signals

void availabilityChanged(bool available)
void availabilityChanged(QMultimedia::AvailabilityStatus availability)
void metaDataAvailableChanged(bool available)
void metaDataChanged()
void metaDataChanged(const QString &key, const QVariant &value)
void notifyIntervalChanged(int milliseconds)

Protected Functions

QMediaObject(QObject *parent, QMediaService *service)
void addPropertyWatch(QByteArray const &name)
void removePropertyWatch(QByteArray const &name)
  • 9 protected functions inherited from QObject

Additional Inherited Members

  • 1 public slot inherited from QObject
  • 11 static public members inherited from QObject

Detailed Description

The QMediaObject class provides a common base for multimedia objects.

It provides some basic functionality that is common to other high level classes like QMediaPlayer, QAudioDecoder and QCamera, including availability and meta-data functionality, as well as functionality to connect media objects with support classes like QMediaPlaylist.

The higher level QMediaObject derived classes provide the actual multimedia functionality, by internally using a QMediaService. Each media object hosts a QMediaService and uses the QMediaControl interfaces implemented by the service to implement its API. These controls can be accessed from the media object if necessary, but in general the useful functionality can be accessed from the higher level classes.

Most media objects when constructed will request a new QMediaService instance, but some like QMediaRecorder and QAudioRecorder will share a service with another object.

See also QMediaService and QMediaControl.

Property Documentation

notifyInterval : int

The interval at which notifiable properties will update.

The interval is expressed in milliseconds, the default value is 1000.

Access functions:

int notifyInterval() const
void setNotifyInterval(int milliSeconds)

Notifier signal:

void notifyIntervalChanged(int milliseconds)

See also addPropertyWatch() and removePropertyWatch().

Member Function Documentation

[protected] QMediaObject::QMediaObject(QObject *parent, QMediaService *service)

Constructs a media object which uses the functionality provided by a media service.

The parent is passed to QObject.

This class is meant as a base class for multimedia objects so this constructor is protected.

QMediaObject::~QMediaObject()

Destroys this media object.

[protected] void QMediaObject::addPropertyWatch(QByteArray const &name)

Watch the property name. The property's notify signal will be emitted once every notifyInterval milliseconds.

See also notifyInterval.

[virtual] QMultimedia::AvailabilityStatus QMediaObject::availability() const

Returns the availability of the functionality offered by this object.

In some cases the functionality may not be available (for example, if the current operating system or platform does not provide the required functionality), or it may be temporarily unavailable (for example, audio playback during a phone call or similar).

[signal] void QMediaObject::availabilityChanged(bool available)

Signal emitted when the availability state has changed to available.

Note: Signal availabilityChanged is overloaded in this class. To connect to this one using the function pointer syntax, you must specify the signal type in a static cast, as shown in this example:

connect(mediaObject, static_cast<void(QMediaObject::*)(bool)>(&QMediaObject::availabilityChanged),
    [=](bool available){ /* ... */ });

[signal] void QMediaObject::availabilityChanged(QMultimedia::AvailabilityStatus availability)

Signal emitted when the availability of the service has changed to availability.

Note: Signal availabilityChanged is overloaded in this class. To connect to this one using the function pointer syntax, you must specify the signal type in a static cast, as shown in this example:

connect(mediaObject, static_cast<void(QMediaObject::*)(QMultimedia::AvailabilityStatus)>(&QMediaObject::availabilityChanged),
    [=](QMultimedia::AvailabilityStatus availability){ /* ... */ });

QStringList QMediaObject::availableMetaData() const

Returns a list of keys there is meta-data available for.

[virtual] bool QMediaObject::bind(QObject *object)

Bind object to this QMediaObject instance.

This method establishes a relationship between this media object and a helper object. The nature of the relationship depends on both parties. This methods returns true if the helper was successfully bound, false otherwise.

Most subclasses of QMediaObject provide more convenient functions that wrap this functionality, so this function rarely needs to be called directly.

The object passed must implement the QMediaBindableInterface interface.

See also QMediaBindableInterface.

[virtual] bool QMediaObject::isAvailable() const

Returns true if the service is available for use.

bool QMediaObject::isMetaDataAvailable() const

Returns true if there is meta-data associated with this media object, else false.

QVariant QMediaObject::metaData(const QString &key) const

Returns the value associated with a meta-data key.

See the list of predefined meta-data keys.

[signal] void QMediaObject::metaDataAvailableChanged(bool available)

Signals that the available state of a media object's meta-data has changed.

[signal] void QMediaObject::metaDataChanged()

Signals that this media object's meta-data has changed.

If multiple meta-data elements are changed, metaDataChanged(const QString &key, const QVariant &value) signal is emitted for each of them with metaDataChanged() changed emitted once.

Note: Signal metaDataChanged is overloaded in this class. To connect to this one using the function pointer syntax, you must specify the signal type in a static cast, as shown in this example:

connect(mediaObject, static_cast<void(QMediaObject::*)()>(&QMediaObject::metaDataChanged),
    [=](){ /* ... */ });

[signal] void QMediaObject::metaDataChanged(const QString &key, const QVariant &value)

Signal the changes of one meta-data element value with the given key.

Note: Signal metaDataChanged is overloaded in this class. To connect to this one using the function pointer syntax, you must specify the signal type in a static cast, as shown in this example:

connect(mediaObject, static_cast<void(QMediaObject::*)(const QString &, const QVariant &)>(&QMediaObject::metaDataChanged),
    [=](const QString &key, const QVariant &value){ /* ... */ });

[signal] void QMediaObject::notifyIntervalChanged(int milliseconds)

Signal a change in the notify interval period to milliseconds.

Note: Notifier signal for property notifyInterval.

[protected] void QMediaObject::removePropertyWatch(QByteArray const &name)

Remove property name from the list of properties whose changes are regularly signaled.

See also notifyInterval.

[virtual] QMediaService *QMediaObject::service() const

Returns the media service that provides the functionality of this multimedia object.

[virtual] void QMediaObject::unbind(QObject *object)

Detach object from the QMediaObject instance.

Unbind the helper object from this media object. A warning will be generated if the object was not previously bound to this object.

See also QMediaBindableInterface.

© 2017 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.