Класс QMediaPlayer
Класс QMediaPlayer позволяет воспроизводить медиаисточник. Подробнее...
| Заголовок: | #include <QMediaPlayer> |
| qmake: | QT += multimedia |
| Наследует: | QMediaObject |
Общедоступные типы
| перечисление | Ошибка { НетОшибок, ОшибкаРесурса, ОшибкаФормата, ОшибкаСети, ОшибкаДоступа, ОшибкаОтсутствияСервиса } |
| перечисление | Флаг { НизкаяЗадержка, ПотоковоеВоспроизведение, ВидеоПоверхность } |
| флаги | Флаги |
| перечисление | СостояниеМедиа { НеизвестноеСостояниеМедиа, БезМедиа, ЗагрузкаМедиа, ЗагруженноеМедиа, ПодтормаживаниеМедиа, …, НевернаяМедиа } |
| перечисление | Состояние { Остановлено, Воспроизводится, Приостановлено } |
Свойства
|
|
Общедоступные функции
| QMediaPlayer(QObject *parent = nullptr, QMediaPlayer::Flags flags = Flags()) | |
| virtual | ~QMediaPlayer() |
| QAudio::Role | audioRole() const |
| int | bufferStatus() const |
| QMediaContent | currentMedia() const |
| QString | customAudioRole() const |
| qint64 | duration() const |
| QMediaPlayer::Error | error() const |
| QString | errorString() const |
| bool | isAudioAvailable() const |
| bool | isMuted() const |
| bool | isSeekable() const |
| bool | isVideoAvailable() const |
| QMediaContent | media() const |
| QMediaPlayer::MediaStatus | mediaStatus() const |
| const QIODevice * | mediaStream() const |
| qreal | playbackRate() const |
| QMediaPlaylist * | playlist() const |
| qint64 | position() const |
| void | setAudioRole(QAudio::Role audioRole) |
| void | setCustomAudioRole(const QString &audioRole) |
| void | setVideoOutput(QVideoWidget *output) |
| void | setVideoOutput(QGraphicsVideoItem *output) |
| void | setVideoOutput(QAbstractVideoSurface *surface) |
| void | setVideoOutput(const QVector<QAbstractVideoSurface *> &surfaces) |
| QMediaPlayer::State | state() const |
| QList<QAudio::Role> | supportedAudioRoles() const |
| QStringList | supportedCustomAudioRoles() const |
| int | volume() const |
Переопределённые общедоступные функции
| virtual QMultimedia::AvailabilityStatus | availability() const override |
Общедоступные слоты
| void | pause() |
| void | play() |
| void | setMedia(const QMediaContent &media, QIODevice *stream = nullptr) |
| void | setMuted(bool muted) |
| void | setPlaybackRate(qreal rate) |
| void | setPlaylist(QMediaPlaylist *playlist) |
| void | setPosition(qint64 position) |
| void | setVolume(int volume) |
| void | stop() |
Сигналы
| void | доступноАудиоИзменилось(bool available) |
| void | измениласьРольАудио(QAudio::Role role) |
| void | изменилсяСтатусБуфера(int percentFilled) |
| void | изменилосьТекущееМедиа(const QMediaContent &media) |
| void | измениласьПользовательскаяРольАудио(const QString &role) |
| void | измениласьПродолжительность(qint64 duration) |
| void | ошибка(QMediaPlayer::Error error) |
| void | изменилосьМедиа(const QMediaContent &media) |
| void | изменилсяСтатусМедиа(QMediaPlayer::MediaStatus status) |
| void | изменилсяНемые(bool muted) |
| void | измениласьСкоростьВоспроизведения(qreal rate) |
| void | изменилосьПоложение(qint64 position) |
| void | измениласьВозможностьПеремотки(bool seekable) |
| void | изменилосьСостояние(QMediaPlayer::State state) |
| void | доступноВидеоИзменилось(bool videoAvailable) |
| void | изменилсяУровеньГромкости(int volume) |
Статические публичные члены
| QMultimedia::SupportEstimate | имеетПоддержку(const QString &mimeType, const QStringList &codecs = QStringList(), QMediaPlayer::Flags flags = Flags()) |
Подробное описание
Класс QMediaPlayer — это высокоуровневый класс для воспроизведения медиа. Он может использоваться для воспроизведения таких файлов, как песни, фильмы и интернет-радио. Контент для воспроизведения задаётся объектом QMediaContent, который можно рассматривать как основной или канонический URL с дополнительной информацией. При предоставлении QMediaContent воспроизведение может начаться.
player = new QMediaPlayer;
connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged(qint64)));
player->setMedia(QUrl::fromLocalFile("/Users/me/Music/coolsong.mp3"));
player->setVolume(50);
player->play(); QVideoWidget может использоваться с QMediaPlayer для отображения видео, а QMediaPlaylist — для работы с плейлистами.
playlist = new QMediaPlaylist;
playlist->addMedia(QUrl("http://example.com/movie1.mp4"));
playlist->addMedia(QUrl("http://example.com/movie2.mp4"));
playlist->addMedia(QUrl("http://example.com/movie3.mp4"));
playlist->setCurrentIndex(1);
player = new QMediaPlayer;
player->setPlaylist(playlist);
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play(); Так как QMediaPlayer является QMediaObject, вы можете использовать несколько функций QMediaObject, например:
- Доступ к метаданным текущего воспроизводимого медиа (QMediaObject::metaData() и предопределённые ключи метаданных)
- Проверка доступности службы воспроизведения медиа (QMediaObject::availability())
См. также QMediaObject, QMediaService, QVideoWidget и QMediaPlaylist.
Документация по типам членов
перечисление QMediaPlayer::Error
Определяет условие ошибки медиаплеера.
| Константа | Значение | Описание |
|---|---|---|
QMediaPlayer::NoError |
0 |
Ошибка не произошла. |
QMediaPlayer::ResourceError |
1 |
Не удалось разрешить медиаресурс. |
QMediaPlayer::FormatError |
2 |
Формат медиаресурса не (полностью) поддерживается. Воспроизведение всё ещё может быть возможным, но без аудио или видео компонента. |
QMediaPlayer::NetworkError |
3 |
Произошла ошибка сети. |
QMediaPlayer::AccessDeniedError |
4 |
Нет соответствующих разрешений для воспроизведения медиаресурса. |
QMediaPlayer::ServiceMissingError |
5 |
Не найдена подходящая служба воспроизведения, воспроизведение невозможно. |
перечисление QMediaPlayer::Flagфлаги QMediaPlayer::Flags
| Константа | Значение | Описание |
|---|---|---|
QMediaPlayer::LowLatency |
0x01 |
Ожидается, что плеер будет использоваться с простыми аудиоформатами, но воспроизведение должно начинаться без значительной задержки. Такая служба воспроизведения может использоваться для звуковых сигналов, мелодии звонка и т. д. |
QMediaPlayer::StreamPlayback |
0x02 |
Ожидается, что плеер будет воспроизводить потоки на основе QIODevice. Если передано в конструктор QMediaPlayer, будет выбрана служба, поддерживающая воспроизведение потоков. |
QMediaPlayer::VideoSurface |
0x04 |
Ожидается, что плеер сможет отображать вывод на QAbstractVideoSurface. |
Тип Flags является типом-синонимом для QFlags<Flag>. Он хранит логическое ИЛИ сочетание значений Flag.
перечисление QMediaPlayer::MediaStatus
Определяет состояние текущего медиа медиаплеера.
| Константа | Значение | Описание |
|---|---|---|
QMediaPlayer::UnknownMediaStatus |
0 |
Статус медиа определить нельзя. |
QMediaPlayer::NoMedia |
1 |
Текущее медиа отсутствует. Плеер находится в состоянии Остановлено. |
QMediaPlayer::LoadingMedia |
2 |
Текущее медиа загружается. Плеер может находиться в любом состоянии. |
QMediaPlayer::LoadedMedia |
3 |
Текущее медиа загружено. Плеер находится в состоянии Остановлено. |
QMediaPlayer::StalledMedia |
4 |
Воспроизведение текущего медиа приостановлено из-за недостаточного буферизации или других временных прерываний. Плеер находится в состоянии Воспроизведение или Пауза. |
QMediaPlayer::BufferingMedia |
5 |
Плеер буферизует данные, но имеет достаточно данных для продолжения воспроизведения в ближайшем будущем. Плеер находится в состоянии Воспроизведение или Пауза. |
QMediaPlayer::BufferedMedia |
6 |
Плеер полностью буферизовал текущее медиа. Плеер находится в состоянии Воспроизведение или Пауза. |
QMediaPlayer::EndOfMedia |
7 |
Воспроизведение достигло конца текущего медиа. Плеер находится в состоянии Остановлено. |
QMediaPlayer::InvalidMedia |
8 |
Текущее медиа не может быть воспроизведено. Плеер находится в состоянии Остановлено. |
перечисление QMediaPlayer::State
Определяет текущее состояние медиаплеера.
| Константа | Значение | Описание |
|---|---|---|
QMediaPlayer::StoppedState |
0 |
Устройство воспроизведения медиа не воспроизводит контент, воспроизведение начнется с начала текущего трека. |
QMediaPlayer::PlayingState |
1 |
Устройство воспроизведения медиа в данный момент воспроизводит контент. |
QMediaPlayer::PausedState |
2 |
Устройство воспроизведения медиа приостановило воспроизведение, воспроизведение текущего трека возобновится с позиции, на которой оно было приостановлено. |
Документация свойств
audioAvailable : const bool
Это свойство содержит статус доступности аудио для текущего медиа.
Так как срок жизни объекта QMediaPlayer может быть длиннее, чем воспроизведение одного QMediaContent, это свойство может изменяться со временем. Сигнал audioAvailableChanged может использоваться для отслеживания его статуса.
Функции доступа:
| bool | isAudioAvailable() const |
Сигнал уведомления:
| void | audioAvailableChanged(bool available) |
audioRole : QAudio::Role
Это свойство содержит роль аудиопотока, воспроизводимого медиаплером.
Его можно установить, чтобы указать тип воспроизводимого аудио, позволяя системе принимать соответствующие решения относительно громкости, маршрутизации или пост-обработки.
Роль аудио должна быть установлена перед вызовом setMedia().
customAudioRole очищается, когда это свойство устанавливается на значение, отличное от QAudio::CustomRole.
Это свойство было добавлено в Qt 5.6.
Функции доступа:
| QAudio::Role | audioRole() const |
| void | setAudioRole(QAudio::Role audioRole) |
Сигнал уведомления:
| void | audioRoleChanged(QAudio::Role role) |
См. также supportedAudioRoles().
bufferStatus : const int
Это свойство содержит процент заполнения временного буфера перед началом или возобновлением воспроизведения, от 0 (пустого) до 100 (полного).
Когда объект плеера буферизует данные, это свойство содержит процент заполнения временного буфера. Буфер должен быть заполнен на 100%, прежде чем воспроизведение может начаться или возобновиться, в этот момент mediaStatus() вернёт BufferedMedia или BufferingMedia. Если значение меньше 100, mediaStatus() вернёт StalledMedia.
Функции доступа:
| int | bufferStatus() const |
Сигнал уведомления:
| void | bufferStatusChanged(int percentFilled) |
См. также mediaStatus().
currentMedia : const QMediaContent
Это свойство содержит текущее активное медиасодержимое, воспроизводимое объектом плеера. Это значение может отличаться от свойства QMediaPlayer::media, если используется список воспроизведения. В этом случае currentMedia указывает на текущее медиасодержимое, обрабатываемое плеером, в то время как свойство QMediaPlayer::media содержит исходный список воспроизведения.
Функции доступа:
| QMediaContent | currentMedia() const |
Сигнал уведомления:
| void | currentMediaChanged(const QMediaContent &media) |
См. также QMediaContent и media().
customAudioRole : QString
Это свойство содержит роль аудиопотока, воспроизводимого медиаплером.
Его можно установить для указания типа аудио, когда бэкенд поддерживает роли аудио, неизвестные Qt. Указание роли позволяет системе принимать соответствующие решения относительно громкости, маршрутизации или пост-обработки.
Роль аудио должна быть установлена перед вызовом setMedia().
audioRole устанавливается в QAudio::CustomRole, когда это свойство устанавливается.
Это свойство было добавлено в Qt 5.11.
Функции доступа:
| QString | customAudioRole() const |
| void | setCustomAudioRole(const QString &audioRole) |
Сигнал уведомления:
| void | customAudioRoleChanged(const QString &role) |
См. также supportedCustomAudioRoles().
duration : const qint64
Это свойство содержит длительность текущего медиа.
Значение представляет собой общее время воспроизведения текущего медиа в миллисекундах. Значение может изменяться в течение жизни объекта QMediaPlayer и может быть недоступно при начальном запуске воспроизведения. Подключитесь к сигналу durationChanged() для получения уведомлений о статусе.
Функции доступа:
| qint64 | duration() const |
Сигнал уведомления:
| void | durationChanged(qint64 duration) |
error : const QString
Это свойство содержит строку, описывающую последнее состояние ошибки.
Функции доступа:
| QString | errorString() const |
См. также error().
media : QMediaContent
Это свойство содержит активный источник медиа, используемый объектом плеера.
Объект плеера будет использовать QMediaContent для выбора содержимого для воспроизведения.
По умолчанию это свойство содержит нулевой QMediaContent.
Установка этого свойства в нулевой QMediaContent заставит плеер сбросить всю информацию, относящуюся к текущему источнику медиа, и прекратить все операции ввода-вывода, связанные с этим медиа.
Функции доступа:
| QMediaContent | media() const |
| void | setMedia(const QMediaContent &media, QIODevice *stream = nullptr) |
Сигнал уведомления:
| void | mediaChanged(const QMediaContent &media) |
См. также QMediaContent и currentMedia().
mediaStatus : const MediaStatus
Это свойство содержит статус текущего медиапотока.
Статус потока описывает, как прогрессирует воспроизведение текущего потока.
По умолчанию это свойство равно QMediaPlayer::NoMedia
Функции доступа:
| QMediaPlayer::MediaStatus | mediaStatus() const |
Сигнал уведомления:
| void | mediaStatusChanged(QMediaPlayer::MediaStatus status) |
См. также state.
muted : bool
Это свойство содержит состояние приглушения текущего медиа.
Значение будет истинным, если громкость воспроизведения приглушена, иначе ложным.
Функции доступа:
| bool | isMuted() const |
| void | setMuted(bool muted) |
Сигнал нотификации:
| void | mutedChanged(bool muted) |
playbackRate : qreal
Это свойство содержит скорость воспроизведения текущего медиа.
Это значение является множителем, применяемым к стандартной скорости воспроизведения медиа. По умолчанию это значение равно 1.0, что указывает на воспроизведение медиа со стандартной скоростью. Значения, большие чем 1.0, увеличат скорость воспроизведения. Значения меньше нуля могут быть установлены и указывают на то, что медиа должно быть перемотано назад с множителем стандартной скорости.
Не все службы воспроизведения поддерживают изменение скорости воспроизведения. Статус и качество аудио и видео при быстрой перемотке вперед или назад определяются в рамках фреймворка.
Функции доступа:
| qreal | playbackRate() const |
| void | setPlaybackRate(qreal rate) |
Сигнал нотификации:
| void | playbackRateChanged(qreal rate) |
playlist : QMediaPlaylist*
Это свойство содержит список воспроизведения медиа, используемый объектом плеера.
Объект плеера будет использовать текущий элемент списка воспроизведения для выбора контента, который будет воспроизводиться.
По умолчанию это свойство установлено в значение null.
Если список воспроизведения используется в качестве источника, QMediaPlayer::currentMedia обновляется с текущим элементом списка воспроизведения. Текущий источник должен быть выбран с помощью QMediaPlaylist::setCurrentIndex(int), а не QMediaPlayer::setMedia(), иначе текущий список воспроизведения будет отброшен.
Функции доступа:
| QMediaPlaylist * | playlist() const |
| void | setPlaylist(QMediaPlaylist *playlist) |
См. также QMediaContent.
position : qint64
Это свойство содержит позицию воспроизведения текущего медиа.
Значение — текущая позиция воспроизведения, выраженная в миллисекундах с начала медиа. Периодические изменения позиции будут указаны сигналом positionChanged(), интервал между обновлениями может быть задан методом QMediaObject's setNotifyInterval().
Функции доступа:
| qint64 | position() const |
| void | setPosition(qint64 position) |
Сигнал нотификации:
| void | positionChanged(qint64 position) |
seekable : const bool
Это свойство содержит статус возможности перемотки для текущего медиа.
Если перемотка поддерживается, это свойство будет true; в противном случае — false. Статус этого свойства может изменяться на протяжении жизненного цикла объекта QMediaPlayer, используйте сигнал seekableChanged для отслеживания изменений.
Функции доступа:
| bool | isSeekable() const |
Сигнал нотификации:
| void | seekableChanged(bool seekable) |
state : const State
Это свойство содержит состояние воспроизведения медиаплеера.
По умолчанию это свойство имеет значение QMediaPlayer::Stopped
Функции доступа:
| QMediaPlayer::State | state() const |
Сигнал нотификации:
| void | stateChanged(QMediaPlayer::State state) |
См. также mediaStatus(), play(), pause() и stop().
videoAvailable : const bool
Это свойство содержит статус доступности видео для текущего медиа.
Если видео доступно, класс QVideoWidget может быть использован для его просмотра. Так как жизненный цикл QMediaPlayer может быть длиннее, чем воспроизведение одного QMediaContent, это свойство может изменяться со временем, для отслеживания изменений можно использовать сигнал videoAvailableChanged.
Функции доступа:
| bool | isVideoAvailable() const |
Сигнал нотификации:
| void | videoAvailableChanged(bool videoAvailable) |
См. также QVideoWidget и QMediaContent.
volume : int
Это свойство содержит текущий уровень громкости.
Уровень громкости масштабируется линейно, изменяясь от 0 (тишина) до 100 (полная громкость). Значения вне этого диапазона будут ограничены.
По умолчанию громкость равна 100.
Элементы управления громкостью в пользовательском интерфейсе обычно должны масштабироваться нелинейно. Например, использование логарифмической шкалы обеспечит линейные изменения в воспринимаемой громкости, что обычно ожидается от элемента управления громкостью. Дополнительную информацию см. в QAudio::convertVolume().
Функции доступа:
| int | volume() const |
| void | setVolume(int volume) |
Сигнал нотификации:
| void | volumeChanged(int volume) |
Документация по членам-функциям
QMediaPlayer::QMediaPlayer(QObject *parent = nullptr, QMediaPlayer::Flags flags = Flags())
Создает экземпляр QMediaPlayer, связанный с parent и с флагами flags.
[signal] void QMediaPlayer::audioAvailableChanged(bool available)
Сигнализирует об изменении доступности аудиоконтента на available.
Примечание: Сигнал нотификации для свойства audioAvailable.
[signal] void QMediaPlayer::audioRoleChanged(QAudio::Role role)
Сигнализирует о том, что роль аудио role медиаплеера изменилась.
Примечание: Сигнал нотификации для свойства audioRole.
Данная функция была добавлена в Qt 5.6.
[signal] void QMediaPlayer::bufferStatusChanged(int percentFilled)
Сигнализирует о заполненности локального буфера в процентах, percentFilled.
Примечание: Сигнал нотификации для свойства bufferStatus.
[signal] void QMediaPlayer::currentMediaChanged(const QMediaContent &media)
Сигнализирует об изменении текущего воспроизводимого контента на media.
Примечание: Сигнал нотификации для свойства currentMedia.
См. также currentMedia() и mediaChanged().
[signal] void QMediaPlayer::customAudioRoleChanged(const QString &role)
Сигнализирует о том, что роль аудио role медиаплеера изменилась.
Примечание: Сигнал нотификации для свойства customAudioRole.
Данная функция была добавлена в Qt 5.11.
[signal] void QMediaPlayer::durationChanged(qint64 duration)
Сигнал, что продолжительность содержимого изменилась на duration, выраженную в миллисекундах.
Примечание: Сигнал-уведомитель для свойства duration.
[signal] void QMediaPlayer::error(QMediaPlayer::Error error)
Сигнализирует о возникновении условия error.
Примечание: Сигнал error перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную вспомогательную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaPlayer, QOverload<QMediaPlayer::Error>::of(&QMediaPlayer::error),
[=](QMediaPlayer::Error error){ /* ... */ }); См. также errorString().
[signal] void QMediaPlayer::mediaChanged(const QMediaContent &media)
Сигнализирует о том, что источник медиа был изменён на media.
Примечание: Сигнал-уведомитель для свойства media.
См. также media() и currentMediaChanged().
[signal] void QMediaPlayer::mediaStatusChanged(QMediaPlayer::MediaStatus status)
Сигнализирует о том, что состояние текущей медиа изменилось на status.
Примечание: Сигнал-уведомитель для свойства mediaStatus.
См. также mediaStatus().
[signal] void QMediaPlayer::mutedChanged(bool muted)
Сигнал, что состояние приглушения изменилось на muted.
Примечание: Сигнал-уведомитель для свойства muted.
[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.
Примечание: Сигнал-уведомитель для свойства seekable.
[slot] void QMediaPlayer::setMedia(const QMediaContent &media, QIODevice *stream = nullptr)
Устанавливает текущий источник media.
Если указан stream, данные медиа будут считываться из него вместо разрешения источника медиа. В этом случае URL должен быть предоставлен для разрешения дополнительной информации о медиа, такой как тип MIME. Поток stream должен быть открытым и доступным для чтения. Для macOS stream также должен быть доступен для поиска.
Установка медиа в значение null QMediaContent заставит плеер отбросить всю информацию, связанную с текущим источником медиа, и прекратить все операции ввода-вывода, связанные с этой медиа.
Примечание: Эта функция возвращает немедленно после записи указанного источника медиа. Она не ожидает завершения загрузки медиа и не проверяет наличие ошибок. Слушайте сигналы mediaStatusChanged() и error(), чтобы получать уведомления о загрузке медиа и об ошибках, возникших во время загрузки.
Начиная с Qt 5.12.2, схема URL gst-pipeline предоставляет пользовательские конвейеры для бэкенда GStreamer.
player = new QMediaPlayer;
player->setMedia(QUrl("gst-pipeline: videotestsrc ! autovideosink"));
player->play(); Если используется QAbstractVideoSurface в качестве видеовывода, qtvideosink может быть использован как элемент видеоприёмника напрямую в конвейере. После этого поверхность будет получать видеокадры в QAbstractVideoSurface::present().
class Surface : public QAbstractVideoSurface
{
public:
Surface(QObject *p) : QAbstractVideoSurface(p) { }
QList<QVideoFrame::PixelFormat> supportedPixelFormats(QAbstractVideoBuffer::HandleType) const override
{
// Make sure that the driver supports this pixel format.
return QList<QVideoFrame::PixelFormat>() << QVideoFrame::Format_YUYV;
}
// Video frames are handled here.
bool present(const QVideoFrame &) override { return true; }
};
player = new QMediaPlayer;
player->setVideoOutput(new Surface(player));
player->setMedia(QUrl("gst-pipeline: videotestsrc ! qtvideosink"));
player->play(); Если в качестве видеовывода используется QVideoWidget, а конвейер содержит элемент видеоприёмника с именем qtvideosink, текущий QVideoWidget будет использован для рендеринга видео.
player = new QMediaPlayer;
videoWidget = new QVideoWidget;
videoWidget->show();
player->setVideoOutput(videoWidget);
player->setMedia(QUrl("gst-pipeline: videotestsrc ! xvimagesink name=\"qtvideosink\""));
player->play(); Если конвейер содержит элемент appsrc, он будет использоваться для отправки данных из stream.
QImage img("images/qt-logo.png");
img = img.convertToFormat(QImage::Format_ARGB32);
QByteArray ba(reinterpret_cast<const char *>(img.bits()), img.sizeInBytes());
QBuffer buffer(&ba);
buffer.open(QIODevice::ReadOnly);
player = new QMediaPlayer;
player->setMedia(QUrl("gst-pipeline: appsrc blocksize=4294967295 ! \
video/x-raw,format=BGRx,framerate=30/1,width=200,height=147 ! \
coloreffects preset=heat ! videoconvert ! video/x-raw,format=I420 ! jpegenc ! rtpjpegpay ! \
udpsink host=127.0.0.1 port=5000"), &buffer);
player->play();
QMediaPlayer *receiver = new QMediaPlayer;
videoWidget = new QVideoWidget;
receiver->setVideoOutput(videoWidget);
receiver->setMedia(QUrl("gst-pipeline: udpsrc port=5000 ! \
application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! \
xvimagesink name=qtvideosink"));
receiver->play();
// Content will be shown in this widget.
videoWidget->show(); Примечание: Функция-установщик для свойства media.
См. также media().
[signal] void QMediaPlayer::stateChanged(QMediaPlayer::State state)
Сигнализирует о том, что состояние объекта-плеера изменилось на state.
Примечание: Сигнал-уведомитель для свойства state.
[slot] void QMediaPlayer::stop()
Остановить воспроизведение и сбросить позицию воспроизведения к началу.
[signal] void QMediaPlayer::videoAvailableChanged(bool videoAvailable)
Сигнализирует о том, что доступность визуального содержимого изменилась на videoAvailable.
Примечание: Сигнал-уведомитель для свойства videoAvailable.
[signal] void QMediaPlayer::volumeChanged(int volume)
Сигнализирует о том, что громкость воспроизведения изменилась на volume.
Примечание: Сигнал-уведомитель для свойства volume.
[virtual] QMediaPlayer::~QMediaPlayer()
Уничтожает объект плеера.
[override virtual] QMultimedia::AvailabilityStatus QMediaPlayer::availability() const
Переопределяет: QMediaObject::availability() const.
QMediaPlayer::Error QMediaPlayer::error() const
Возвращает текущее состояние ошибки.
[static] QMultimedia::SupportEstimate QMediaPlayer::hasSupport(const QString &mimeType, const QStringList &codecs = QStringList(), QMediaPlayer::Flags flags = Flags())
Возвращает уровень поддержки медиаплеером для mimeType и набора codecs.
Аргумент flags позволяет указать дополнительные требования, такие как показатели производительности.
const QIODevice *QMediaPlayer::mediaStream() const
Возвращает источник потока данных медиа.
Это допустимо только в том случае, если поток был передан в setMedia().
См. также setMedia().
void QMediaPlayer::setVideoOutput(QVideoWidget *output)
Присоединить QVideoWidget видео output к медиаплеера.
Если медиаплейер уже имеет подключенный видеовыход, он будет заменён новым.
void QMediaPlayer::setVideoOutput(QGraphicsVideoItem *output)
Присоединить QGraphicsVideoItem видео output к медиаплеера.
Если медиаплейер уже имеет подключенный видеовыход, он будет заменён новым.
void QMediaPlayer::setVideoOutput(QAbstractVideoSurface *surface)
Устанавливает видео surface в качестве видеовыхода медиаплеера.
Если видеовыход уже установлен для медиаплеера, новая поверхность его заменит.
void QMediaPlayer::setVideoOutput(const QVector<QAbstractVideoSurface *> &surfaces)
Устанавливает несколько видеоповерхностей в качестве видеовыхода медиаплеера. Это позволяет медиаплеера отображать видеокадры на разных поверхностях.
Все видеоповерхности должны поддерживать по крайней мере одну общую QVideoFrame::PixelFormat.
Если видеовыход уже установлен для медиаплеера, новые поверхности его заменят.
Эта функция была добавлена в Qt 5.15.
См. также QAbstractVideoSurface::supportedPixelFormats.
QList<QAudio::Role> QMediaPlayer::supportedAudioRoles() const
Возвращает список поддерживаемых ролей аудио.
Если назначение роли аудио не поддерживается, возвращается пустой список.
Эта функция была добавлена в Qt 5.6.
См. также audioRole.
QStringList QMediaPlayer::supportedCustomAudioRoles() const
Возвращает список поддерживаемых пользовательских ролей аудио. Пустой список может указывать на то, что поддерживаемые пользовательские роли аудио неизвестны. Список может быть неполным.
Эта функция была добавлена в Qt 5.11.
См. также customAudioRole.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qmediaplayer.html