Класс QMediaPlayer
Класс QMediaPlayer позволяет воспроизводить медиафайлы. Подробнее...
| Заголовок: | #include <QMediaPlayer> |
| CMake: | find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| Создается из: | MediaPlayer |
| Наследует: | 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()
Приостанавливает воспроизведение текущего источника.
[slot] void QMediaPlayer::play()
Начинает или возобновляет воспроизведение текущего источника.
[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()
Останавливает воспроизведение и сбрасывает позицию воспроизведения к началу.
[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