Qt 5.9 | Qt Multimedia | C++ Classes | QMediaObject

Qt 5.9.4 Reference Documentation

# QMediaObject Class

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

Header: | #include <QMediaObject>
qmake: | QT += multimedia
Inherited By: | QAudioDecoder, QCamera, QMediaPlayer, and QRadioTuner

- List of all members, including inherited members

## Properties

- notifyInterval : int

## 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)

## 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)

## 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.