Spec-Zone.ru › Qt

Класс QMediaPlayer

Класс QMediaPlayer позволяет воспроизводить медиафайлы. Подробнее...

Заголовок: #include <QMediaPlayer>
CMake: find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Создается из: MediaPlayer
Наследует: QObject
  • Список всех членов, включая унаследованные

Общедоступные типы

Перечисление Ошибка { НетОшибок, ОшибкаРесурса, ОшибкаФормата, ОшибкаСети, ОшибкаДоступа }
Перечисление Циклы { Бесконечный, ОдинРаз }
Перечисление СостояниеМедиа { НетМедиа, ЗагрузкаМедиа, ЗагруженоМедиа, ПриостановленоМедиа, БуферизацияМедиа, …, НекорректноеМедиа }
Перечисление СостояниеВоспроизведения { Остановлено, Воспроизведение, Приостановлено }

Свойства

  • activeAudioTrack : int
  • activeSubtitleTrack : int
  • activeVideoTrack : int
  • audioOutput : QAudioOutput*
  • bufferProgress : const float
  • duration : const qint64
  • error : const Error
  • errorString : const QString
  • hasAudio : const bool
  • hasVideo : const bool
  • loops : int
  • mediaStatus : const MediaStatus
  • playbackRate : qreal
  • position : qint64
  • seekable : const bool
  • source : QUrl
  • videoOutput : QObject*

Общедоступные функции

QMediaPlayer(QObject *parent = nullptr)
virtual ~QMediaPlayer()
int activeAudioTrack() const
int activeSubtitleTrack() const
int activeVideoTrack() const
QAudioOutput * audioOutput() const
QList<QMediaMetaData> audioTracks() const
float bufferProgress() const
QMediaTimeRange bufferedTimeRange() const
qint64 duration() const
QMediaPlayer::Error error() const
QString errorString() const
bool hasAudio() const
bool hasVideo() const
bool isAvailable() const
bool isSeekable() const
int loops() const
QMediaPlayer::MediaStatus mediaStatus() const
QMediaMetaData metaData() const
qreal playbackRate() const
QMediaPlayer::PlaybackState playbackState() const
qint64 position() const
void setActiveAudioTrack(int index)
void setActiveSubtitleTrack(int index)
void setActiveVideoTrack(int index)
void setAudioOutput(QAudioOutput *output)
void setLoops(int loops)
void setVideoOutput(QObject *)
QUrl source() const
const QIODevice * sourceDevice() const
QList<QMediaMetaData> subtitleTracks() const
QObject * videoOutput() const
QList<QMediaMetaData> videoTracks() const

Общедоступные слоты

void pause()
void play()
void setPlaybackRate(qreal rate)
void setPosition(qint64 position)
void setSource(const QUrl &source)
void setSourceDevice(QIODevice *device, const QUrl &sourceUrl = QUrl())
void stop()

Сигналы

void activeTracksChanged()
void audioOutputChanged()
void bufferProgressChanged(float filled)
void durationChanged(qint64 duration)
void errorChanged()
void errorOccurred(QMediaPlayer::Error error, const QString &errorString)
void hasAudioChanged(bool available)
void hasVideoChanged(bool videoAvailable)
void loopsChanged()
void mediaStatusChanged(QMediaPlayer::MediaStatus status)
void metaDataChanged()
void playbackRateChanged(qreal rate)
void playbackStateChanged(QMediaPlayer::PlaybackState newState)
void positionChanged(qint64 position)
void seekableChanged(bool seekable)
void sourceChanged(const QUrl &media)
void tracksChanged()
void videoOutputChanged()

Подробное описание

Класс QMediaPlayer — это класс для воспроизведения медиа высокого уровня. Он может использоваться для воспроизведения аудио и видео файлов. Контент для воспроизведения задаётся объектом QUrl.

player = new QMediaPlayer;
audioOutput = new QAudioOutput;
player->setAudioOutput(audioOutput);
connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged(qint64)));
player->setSource(QUrl::fromLocalFile("/Users/me/Music/coolsong.mp3"));
audioOutput->setVolume(50);
player->play();

QVideoWidget может использоваться с QMediaPlayer для отрисовки видео.

См. такжеQVideoWidget.

Документация по типам членов

перечисление QMediaPlayer::Error

Определяет состояние ошибки медиаплеера.

Константа Значение Описание
QMediaPlayer::NoError 0 Ошибка не произошла.
QMediaPlayer::ResourceError 1 Ресурс медиа не может быть разрешён.
QMediaPlayer::FormatError 2 Формат ресурса медиа не (полностью) поддерживается. Воспроизведение может быть всё ещё возможно, но без аудио или видео компонентов.
QMediaPlayer::NetworkError 3 Произошла ошибка сети.
QMediaPlayer::AccessDeniedError 4 Нет соответствующих разрешений для воспроизведения ресурса медиа.

перечисление QMediaPlayer::Loops

Некоторые предопределённые константы для свойства loops.

Константа Значение Описание
QMediaPlayer::Infinite -1 Циклическое воспроизведение бесконечно.
QMediaPlayer::Once 1 Воспроизведение медиа один раз (по умолчанию).

перечисление QMediaPlayer::MediaStatus

Определяет состояние текущего медиа медиаплеера.

Константа Значение Описание
QMediaPlayer::NoMedia 0 Нет текущего медиа. Плеер в состоянии Остановлен.
QMediaPlayer::LoadingMedia 1 Текущее медиа загружается. Плеер может быть в любом состоянии.
QMediaPlayer::LoadedMedia 2 Текущее медиа загружено. Плеер в состоянии Остановлен.
QMediaPlayer::StalledMedia 3 Воспроизведение текущего медиа приостановлено из-за недостаточного буферизации или другой временной прерванности. Плеер в состоянии Воспроизведение или Пауза.
QMediaPlayer::BufferingMedia 4 Плеер буферизует данные, но имеет достаточно данных для продолжения воспроизведения в ближайшем будущем. Плеер в состоянии Воспроизведение или Пауза.
QMediaPlayer::BufferedMedia 5 Плеер полностью буферизовал текущее медиа. Плеер в состоянии Воспроизведение или Пауза.
QMediaPlayer::EndOfMedia 6 Воспроизведение достигло конца текущего медиа. Плеер в состоянии Остановлен.
QMediaPlayer::InvalidMedia 7 Текущее медиа не может быть воспроизведено. Плеер в состоянии Остановлен.

перечисление QMediaPlayer::PlaybackState

Определяет текущее состояние медиаплеера.

Константа Значение Описание
QMediaPlayer::StoppedState 0 Медиаплеер не воспроизводит контент, воспроизведение начнется с начала текущей дорожки.
QMediaPlayer::PlayingState 1 Медиаплеер в настоящее время воспроизводит контент.
QMediaPlayer::PausedState 2 Медиаплеер приостановил воспроизведение, воспроизведение текущей дорожки возобновится с позиции, на которой плеер был приостановлен.

Документация свойств

activeAudioTrack : int

Возвращает текущий активный аудиотрек.

По умолчанию выбирается первый доступный аудиотрек.

Установите index в -1 для отключения всех аудиотреков.

Функции доступа:

int activeAudioTrack() const
void setActiveAudioTrack(int index)

Сигнал уведомления:

void activeTracksChanged()

activeSubtitleTrack : int

Возвращает текущий активный субтитровую дорожку.

Установите index в -1 для отключения субтитров.

Субтитры отключены по умолчанию.

Функции доступа:

int activeSubtitleTrack() const
void setActiveSubtitleTrack(int index)

Сигнал уведомления:

void activeTracksChanged()

activeVideoTrack : int

Возвращает текущий активный видеотрек.

По умолчанию выбирается первый доступный аудиотрек.

Установите index в -1 для отключения всех видеотреков.

Функции доступа:

int activeVideoTrack() const
void setActiveVideoTrack(int index)

Сигнал уведомления:

void activeTracksChanged()

audioOutput : QAudioOutput*

Это свойство содержит устройство аудиовывода, используемое медиаплеером.

Текущий аудиовывод, который будет использоваться при воспроизведении медиаданных. Установка нового аудиовывода заменит текущий.

Установив это свойство в nullptr, вы отключите любой аудиовывод.

Функции доступа:

QAudioOutput * audioOutput() const
void setAudioOutput(QAudioOutput *output)

Сигнал уведомления:

void audioOutputChanged()

[read-only] bufferProgress : const float

Это свойство содержит процент заполненного временного буфера перед началом или возобновлением воспроизведения, от 0. (пустой) до 1. (полный).

Когда объект плеера буферизует; это свойство содержит процент заполненного временного буфера. Буфер должен быть заполнен на 100%, прежде чем воспроизведение сможет начаться или возобновиться, в этот момент mediaStatus() вернёт BufferedMedia или BufferingMedia. Если значение меньше 100, mediaStatus() вернёт StalledMedia.

Функции доступа:

float bufferProgress() const

Сигнал уведомления:

void bufferProgressChanged(float filled)

См. также mediaStatus().

[read-only] duration : const qint64

Это свойство содержит длительность текущего медиаконтента.

Значение — общее время воспроизведения в миллисекундах текущего медиа. Значение может меняться на протяжении жизни объекта QMediaPlayer и может быть недоступно при начальном воспроизведении. Подключитесь к сигналу durationChanged(), чтобы получать уведомления о статусе.

Функции доступа:

qint64 duration() const

Сигнал уведомления:

void durationChanged(qint64 duration)

[read-only] error : const Error

Это свойство содержит строку, описывающую последнее состояние ошибки.

Функции доступа:

QMediaPlayer::Error error() const

Сигнал уведомления:

void errorChanged()

См. также error().

[read-only] errorString : const QString

Это свойство содержит строку, описывающую текущую ошибку более подробно.

Функции доступа:

QString errorString() const

Сигнал уведомления:

void errorChanged()

[read-only] hasAudio : const bool

Это свойство содержит значение, указывающее, содержит ли медиаконтент аудио.

Функции доступа:

bool hasAudio() const

Сигнал уведомления:

void hasAudioChanged(bool available)

[read-only] hasVideo : const bool

Это свойство содержит значение, указывающее, содержит ли медиаконтент видео.

Функции доступа:

bool hasVideo() const

Сигнал уведомления:

void hasVideoChanged(bool videoAvailable)

loops : int

Определяет, сколько раз медиа будет воспроизведено до остановки плеера. Установите значение QMediaPlayer::Infinite для бесконечного повторения текущего медиафайла.

Значение по умолчанию — 1. Установка этого свойства в 0 не повлияет на воспроизведение.

Функции доступа:

int loops() const
void setLoops(int loops)

Сигнал уведомления:

void loopsChanged()

[read-only] mediaStatus : const MediaStatus

Это свойство содержит статус текущего медиапотока.

Статус потока описывает, как происходит воспроизведение текущего потока.

По умолчанию это свойство равно QMediaPlayer::NoMedia

Функции доступа:

QMediaPlayer::MediaStatus mediaStatus() const

Сигнал уведомления:

void mediaStatusChanged(QMediaPlayer::MediaStatus status)

скоростьВоспроизведения : qreal

Это свойство содержит скорость воспроизведения текущего медиа.

Это значение является множителем, применяемым к стандартной скорости воспроизведения медиа. По умолчанию это значение равно 1,0, что означает, что медиа воспроизводится со стандартной скоростью. Значения, превышающие 1,0, увеличат скорость воспроизведения. Значения, меньшие нуля, могут быть установлены и указывают на то, что медиа должно быть перемотано назад с множителем стандартной скорости.

Не все службы воспроизведения поддерживают изменение скорости воспроизведения. В рамках фреймворка определяется статус и качество аудио и видео при быстрой перемотке вперед или назад.

Функции доступа:

qreal скоростьВоспроизведения() const
void setPlaybackRate(qreal rate)

Сигнал уведомления:

void скоростьВоспроизведенияИзменилась(qreal rate)

позиция : qint64

Это свойство содержит позицию воспроизведения текущего медиа.

Значение представляет собой текущую позицию воспроизведения, выраженную в миллисекундах с начала медиа. Периодические изменения позиции будут отображаться с помощью сигнала positionChanged().

Если свойство seekable имеет значение true, это свойство может быть установлено в миллисекунды.

Функции доступа:

qint64 позиция() const
void setPosition(qint64 position)

Сигнал уведомления:

void позицияИзменилась(qint64 position)

[read-only] seekable : const bool

Это свойство содержит статус возможности перемотки текущего медиа.

Если перемотка поддерживается, это свойство будет иметь значение true; в противном случае — false. Статус этого свойства может меняться на протяжении всего жизненного цикла объекта QMediaPlayer. Используйте сигнал seekableChanged для отслеживания изменений.

Функции доступа:

bool можноПеремотать() const

Сигнал уведомления:

void можноПеремотатьИзменилось(bool seekable)

источник : QUrl

Это свойство содержит активный источник медиа, используемый объектом плеера.

Объект плеера будет использовать QUrl для выбора контента, который нужно воспроизвести.

По умолчанию это свойство имеет значение null QUrl.

Установка этого свойства в null QUrl заставит плеер удалить всю информацию, относящуюся к текущему источнику медиа, и прекратить все операции ввода-вывода, связанные с этим медиа.

Функции доступа:

QUrl источник() const
void установитьИсточник(const QUrl &source)

Сигнал уведомления:

void источникИзменился(const QUrl &media)

См. также QUrl.

выводВидео : QObject*

Это свойство содержит вывод видео, который должен использоваться медиаплеером.

Медиаплеер может иметь только один подключенный вывод видео, поэтому установка этого свойства заменит ранее подключенный вывод видео.

Установка этого свойства в nullptr отключит вывод видео.

Функции доступа:

QObject * выводВидео() const
void setVideoOutput(QObject *)

Сигнал уведомления:

void выводВидеоИзменился()

Документация по функциям-членам

QMediaPlayer::QMediaPlayer(QObject *parent = nullptr)

Создаёт экземпляр QMediaPlayer в качестве дочернего объекта parent.

[signal] void QMediaPlayer::bufferProgressChanged(float filled)

Сигнализирует объем заполненного локального буфера filled в виде числа от 0 до 1.

Примечание: Сигнал уведомления для свойства bufferProgress.

[signal] void QMediaPlayer::durationChanged(qint64 duration)

Сигнализирует, что продолжительность контента изменилась на duration, выраженную в миллисекундах.

Примечание: Сигнал уведомления для свойства duration.

[signal] void QMediaPlayer::errorOccurred(QMediaPlayer::Error error, const QString &errorString)

Сигнализирует, что произошла ошибка error, при этом errorString содержит описание ошибки.

См. также errorString().

[signal] void QMediaPlayer::hasAudioChanged(bool available)

Сигнализирует, что доступность аудиоконтента изменилась на available.

Примечание: Сигнал уведомления для свойства hasAudio.

[signal] void QMediaPlayer::hasVideoChanged(bool videoAvailable)

Сигнализирует, что доступность визуального контента изменилась на videoAvailable.

Примечание: Сигнал уведомления для свойства hasVideo.

[signal] void QMediaPlayer::mediaStatusChanged(QMediaPlayer::MediaStatus status)

Сигнализирует, что статус текущего медиа изменился на status.

Примечание: Сигнал уведомления для свойства mediaStatus.

См. также mediaStatus().

[slot] void QMediaPlayer::pause()

Приостанавливает воспроизведение текущего источника.

См. также play() и stop().

[slot] void QMediaPlayer::play()

Начинает или возобновляет воспроизведение текущего источника.

См. также pause() и stop().

[signal] void QMediaPlayer::playbackRateChanged(qreal rate)

Сигнализирует, что скорость воспроизведения изменилась на rate.

Примечание: Сигнал уведомления для свойства playbackRate.

[signal] void QMediaPlayer::positionChanged(qint64 position)

Сигнализирует, что позиция контента изменилась на position, выраженную в миллисекундах.

Примечание: Сигнал уведомления для свойства position.

[signal] void QMediaPlayer::seekableChanged(bool seekable)

Сигнализирует, что статус возможности перемотки объекта плеера изменился.

Примечание: Сигнал уведомления для свойства seekable.

[slot] void QMediaPlayer::setSource(const QUrl &source)

Устанавливает текущий источник.

Установка медиа в значение null QUrl заставит плеер удалить всю информацию, относящуюся к текущему источнику медиа, и прекратить все операции ввода-вывода, связанные с этим медиа.

Примечание: Данная функция возвращает значение сразу после записи указанного источника медиа. Она не ожидает завершения загрузки медиа и не проверяет наличие ошибок. Подпишитесь на сигналы mediaStatusChanged() и error() для уведомления о загрузке медиа и возникновении ошибок во время загрузки.

Примечание: Функция-сеттер для свойства source.

См. также source().

[slot] void QMediaPlayer::setSourceDevice(QIODevice *device, const QUrl &sourceUrl = QUrl())

Устанавливает текущий источник device.

Данные медиа будут считываться из device. sourceUrl может быть предоставлена для разрешения дополнительной информации о медиа, типе MIME и т. д. device должен быть открытым и доступным для чтения.

Для macOS device также должен поддерживать поиск.

Примечание: Данная функция возвращает значение сразу после записи указанного источника медиа. Она не ожидает завершения загрузки медиа и не проверяет наличие ошибок. Подпишитесь на сигналы mediaStatusChanged() и error() для уведомления о загрузке медиа и возникновении ошибок во время загрузки.

См. также sourceDevice().

[signal] void QMediaPlayer::sourceChanged(const QUrl &media)

Сигнализирует о том, что источник медиа изменён на media.

Примечание: Сигнал-уведомление для свойства source.

[slot] void QMediaPlayer::stop()

Останавливает воспроизведение и сбрасывает позицию воспроизведения к началу.

См. также play() и pause().

[virtual] QMediaPlayer::~QMediaPlayer()

Уничтожает объект плеера.

QList<QMediaMetaData> QMediaPlayer::audioTracks() const

Перечисляет набор доступных аудиодорожек внутри медиа.

Возвращаемый QMediaMetaData описывает свойства отдельных дорожек.

Разные аудиодорожки могут, например, содержать аудио на разных языках.

Примечание: Функция-геттер для свойства audioTracks.

float QMediaPlayer::bufferProgress() const

Возвращает число от 0 до 1 при буферизации данных.

0 означает, что буферизированных данных нет, воспроизведение обычно приостановлено в этом случае. Возобновление воспроизведения произойдёт, когда буфер достигнет 1, что означает, что достаточно данных было буферизовано для возобновления воспроизведения.

bufferProgress() всегда возвращает 1 для локальных файлов.

Примечание: Функция-геттер для свойства bufferProgress.

QMediaTimeRange QMediaPlayer::bufferedTimeRange() const

Возвращает QMediaTimeRange, описывающий текущие буферизированные данные.

При потоковой передаче медиа из удалённого источника разные части файла медиа могут быть доступны локально. Возвращаемый объект QMediaTimeRange описывает диапазоны времени, которые буферизованы и доступны для немедленного воспроизведения.

См. также QMediaTimeRange.

qint64 QMediaPlayer::duration() const

Возвращает длительность текущего медиа в мс.

Возвращает 0, если у медиаплеера нет допустимого файла или потока медиа. Для потоковых трансляций продолжительность обычно изменяется во время воспроизведения, поскольку становится доступно больше данных.

Примечание: Функция-геттер для свойства duration.

QMediaPlayer::Error QMediaPlayer::error() const

Возвращает текущее состояние ошибки.

Примечание: Функция-геттер для свойства error.

bool QMediaPlayer::isAvailable() const

Возвращает true, если медиаплейер поддерживается на этой платформе.

bool QMediaPlayer::isSeekable() const

Возвращает true, если медиа доступно для поиска. Большинство файлов медиа доступны для поиска, но потоковые трансляции, как правило, нет.

Примечание: Функция-геттер для свойства seekable.

См. также position.

QMediaMetaData QMediaPlayer::metaData() const

Возвращает метаданные для текущего медиа, используемого медиаплеером.

Метаданные могут содержать информацию, такую как заголовок видео или его дату создания.

Примечание: Реализация для Windows предоставляет метаданные только для медиа, расположенных в локальной файловой системе.

Примечание: Функция-геттер для свойства metaData.

qreal QMediaPlayer::playbackRate() const

Возвращает текущую скорость воспроизведения.

Примечание: Функция-геттер для свойства playbackRate.

См. также setPlaybackRate().

qint64 QMediaPlayer::position() const

Возвращает текущую позицию внутри воспроизводимого медиа в мс.

Возвращает 0, если у медиаплеера нет допустимого файла или потока медиа. Для потоковых трансляций продолжительность обычно изменяется во время воспроизведения, поскольку становится доступно больше данных.

Примечание: Функция-геттер для свойства position.

См. также setPosition().

const QIODevice *QMediaPlayer::sourceDevice() const

Возвращает источник потока данных медиа.

Это справедливо только в случае, если поток был передан в setSource().

См. также setSourceDevice() и setSource().

QList<QMediaMetaData> QMediaPlayer::subtitleTracks() const

Перечисляет набор доступных субтитров внутри медиа.

Возвращаемый QMediaMetaData описывает свойства отдельных дорожек.

Примечание: Функция-геттер для свойства subtitleTracks.

QList<QMediaMetaData> QMediaPlayer::videoTracks() const

Перечисляет набор доступных видеодорожек внутри медиа.

Возвращаемый QMediaMetaData описывает свойства отдельных дорожек.

Примечание: Функция-геттер для свойства videoTracks.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmediaplayer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API