Класс 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 |
| QNetworkConfiguration | currentNetworkConfiguration() 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) |
| 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 | setNetworkConfigurations(const QList<QNetworkConfiguration> &configurations) |
| void | setPlaybackRate(qreal rate) |
| void | setPlaylist(QMediaPlaylist *playlist) |
| void | setPosition(qint64 position) |
| void | setVolume(int volume) |
| void | stop() |
Сигналы
| void | audioAvailableChanged(bool available) |
| void | audioRoleChanged(QAudio::Role role) |
| void | bufferStatusChanged(int percentFilled) |
| void | currentMediaChanged(const QMediaContent &media) |
| void | customAudioRoleChanged(const QString &role) |
| void | durationChanged(qint64 duration) |
| void | error(QMediaPlayer::Error error) |
| void | mediaChanged(const QMediaContent &media) |
| void | mediaStatusChanged(QMediaPlayer::MediaStatus status) |
| void | mutedChanged(bool muted) |
| void | networkConfigurationChanged(const QNetworkConfiguration &configuration) |
| void | playbackRateChanged(qreal rate) |
| void | positionChanged(qint64 position) |
| void | seekableChanged(bool seekable) |
| void | stateChanged(QMediaPlayer::State state) |
| void | videoAvailableChanged(bool videoAvailable) |
| void | volumeChanged(int volume) |
Статические публичные члены
| QMultimedia::SupportEstimate | hasSupport(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 |
Текущего медиа нет. Игрок находится в состоянии StoppedState. |
QMediaPlayer::LoadingMedia |
2 |
Текущее медиа загружается. Игрок может быть в любом состоянии. |
QMediaPlayer::LoadedMedia |
3 |
Текущее медиа загружено. Игрок находится в состоянии StoppedState. |
QMediaPlayer::StalledMedia |
4 |
Воспроизведение текущего медиа приостановлено из-за недостаточного буферирования или какой-либо временной помехи. Игрок находится в состоянии PlayingState или PausedState. |
QMediaPlayer::BufferingMedia |
5 |
Игрок буферизует данные, но имеет достаточно данных для продолжения воспроизведения в ближайшем будущем. Игрок находится в состоянии PlayingState или PausedState. |
QMediaPlayer::BufferedMedia |
6 |
Игрок полностью буферизовал текущее медиа. Игрок находится в состоянии PlayingState или PausedState. |
QMediaPlayer::EndOfMedia |
7 |
Воспроизведение достигло конца текущего медиа. Игрок находится в состоянии StoppedState. |
QMediaPlayer::InvalidMedia |
8 |
Текущее медиа не может быть воспроизведено. Игрок находится в состоянии StoppedState. |
перечисление 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 медиаплеера изменилась.
Эта функция была добавлена в Qt 5.6.
Примечание: Сигнал уведомления для свойства audioRole.
[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 медиаплеера изменилась.
Эта функция была добавлена в Qt 5.11.
Примечание: Сигнал уведомления для свойства customAudioRole.
END_OF_DOCUMENT_MARKER ```
[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.
[signal] void QMediaPlayer::networkConfigurationChanged(const QNetworkConfiguration &configuration)
Сигнал, что активный используемый сетевой доступный пункт был изменён на configuration и все последующие сетевые доступы будут использовать эту configuration.
[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; данные медиа будут читаться из него вместо разрешения источника медиа. В этом случае источник медиа по-прежнему может использоваться для определения дополнительной информации о медиа, например, типа MIME. 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().
[slot] void QMediaPlayer::setNetworkConfigurations(const QList<QNetworkConfiguration> &configurations)
Устанавливает сетевые точки доступа для воспроизведения удалённой медиа. configurations содержит, в порядке возрастания приоритета, список конфигураций, которые могут использоваться для сетевого доступа.
Это аннулирует выбор предыдущих конфигураций.
[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.
QNetworkConfiguration QMediaPlayer::currentNetworkConfiguration() const
Возвращает текущую используемую точку доступа к сети. Если возвращается по умолчанию сконструированная QNetworkConfiguration, эта функция недоступна или ни одна из предоставленных в настоящий момент конфигураций не используется.
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 в качестве видеовыхода медиаплеера.
Если видеовыход уже установлен на медиаплеере, новое surface его заменит.
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.14/qmediaplayer.html