Тип QML VideoOutput
Отображение видео или видоискателя камеры. Подробнее...
| Заявление об импорте: | import QtMultimedia 5.8 |
Свойства
- autoOrientation : bool
- contentRect : rectangle
- fillMode : перечисление
- filters : список<объект>
- orientation : int
- source : вариант
- sourceRect : rectangle
Методы
- QPointF mapNormalizedPointToItem (const QPointF &point)
- QRectF mapNormalizedRectToItem(const QRectF &rectangle)
- QPointF mapPointToItem(const QPointF &point)
- QPointF mapPointToSource(const QPointF &point)
- QPointF mapPointToSourceNormalized(const QPointF &point)
- QRectF mapRectToItem(const QRectF &rectangle)
- QRectF mapRectToSource(const QRectF &rectangle)
- QRectF mapRectToSourceNormalized(const QRectF &rectangle)
Подробное описание
Rectangle {
width: 800
height: 600
color: "black"
MediaPlayer {
id: player
source: "file://video.webm"
autoPlay: true
}
VideoOutput {
id: videoOutput
source: player
anchors.fill: parent
}
} Элемент VideoOutput поддерживает отображение видео без преобразований, с растяжением и с равномерным масштабированием. Подробное описание растяжения с равномерным масштабированием см. в описании свойства fillMode.
Элемент VideoOutput работает с бэкендами, которые поддерживают либо QVideoRendererControl, либо QVideoWindowControl. Если бэкенд поддерживает только QVideoWindowControl, видео рендерится в оконном перекрытии, которое расположено поверх окна QtQuick. Из-за особенностей видео-перекрытий, некоторые функции недоступны для таких бэкендов:
- Некоторые преобразования, такие как повороты
- Наличие других элементов QtQuick поверх элемента VideoOutput
Однако большинство бэкендов поддерживают QVideoRendererControl и поэтому не имеют перечисленных выше ограничений.
См. также MediaPlayer и Камера.
Документация по свойствам
autoOrientation : bool
Это свойство позволяет включить и выключить автоматическую ориентацию видеопотока, чтобы его ориентация всегда соответствовала ориентации экрана. Если autoOrientation включен, свойство orientation перезаписывается.
По умолчанию autoOrientation отключено.
Это свойство было введено в QtMultimedia 5.2.
См. также orientation.
contentRect : rectangle
Это свойство содержит координаты элемента области, которая содержала бы рендерируемое видео. При определенных режимах заполнения этот прямоугольник будет больше, чем видимая область VideoOutput.
Это свойство полезно, когда другие координаты задаются относительно размеров источника — это относится к относительным (нормализованным) координатам кадра в диапазоне от 0 до 1.0.
Области вне этого будут прозрачными.
См. также mapRectToItem() и mapPointToItem().
fillMode : перечисление
Установите это свойство, чтобы определить, как видео масштабируется для соответствия целевой области.
- Растянуть — видео масштабируется для соответствия.
- СохранитьСоотношениеСторон — видео масштабируется равномерно для соответствия без обрезки
- СохранитьСоотношениеИОбрезать — видео масштабируется равномерно для заполнения, обрезая при необходимости
По умолчанию режим заполнения — PreserveAspectFit.
filters : список<объект>
Это свойство содержит список видеофильтров, которые применяются к кадрам видео. Порядок фильтров в списке соответствует порядку их вызова для кадров видео. Объекты в списке должны быть экземплярами подкласса QAbstractVideoFilter.
См. также QAbstractVideoFilter.
orientation : int
В некоторых случаях исходный видеопоток требует определенной ориентации для правильного отображения. Это включает источники, такие как видоискатель камеры, где отображаемый видоискатель должен соответствовать реальности, независимо от поворота остальной части пользовательского интерфейса.
Это свойство позволяет применить поворот (шагами по 90 градусов) для компенсации любого поворота пользовательского интерфейса, при этом положительные значения — против часовой стрелки.
Изменение ориентации также повлияет на отображение координат от источника до области просмотра.
См. также autoOrientation.
source : вариант
Это свойство содержит элемент-источник, предоставляющий кадры видео, такие как MediaPlayer или Камера.
Если вы расширяете свои собственные классы C++ для взаимодействия с VideoOutput, вы можете предоставить класс на основе QObject со свойством mediaObject, которое раскрывает класс, производный от QMediaObject, имеющий доступный QVideoRendererControl, или вы можете предоставить класс на основе QObject со свойством videoSurface для записи, которое может принимать класс на основе QAbstractVideoSurface и может следовать правильному протоколу для доставки QVideoFrames в него.
sourceRect : rectangle
Это свойство содержит область содержимого исходного видео, которая рассматривается для рендеринга. Значения указаны в координатах пикселей источника, скорректированных для соотношения сторон пикселей источника.
Обратите внимание, что, как правило, верхний левый угол этого прямоугольника будет 0,0, а ширина и высота будут шириной и высотой входного содержимого. Только когда у видеоисточника задана область просмотра, эти значения будут отличаться.
Настройка ориентации не влияет на этот прямоугольник.
См. также QVideoSurfaceFormat::pixelAspectRatio() и QVideoSurfaceFormat::viewport().
Документация по методам
QPointF mapNormalizedPointToItem (const QPointF &point)
Для заданных нормализованных координат point (то есть каждый компонент в диапазоне от 0 до 1.0), возвращает отображенную точку, которой она соответствует (в координатах элемента). Это отображение зависит от ориентации.
В зависимости от режима заполнения, эта точка может находиться вне рендерной области.
QRectF mapNormalizedRectToItem(const QRectF &rectangle)
Для заданного прямоугольника rectangle в нормализованных координатах (то есть каждый компонент в диапазоне от 0 до 1.0), возвращает отображенный прямоугольник, которому он соответствует (в координатах элемента). Это отображение зависит от ориентации.
В зависимости от режима заполнения, этот прямоугольник может выходить за пределы рендерной области.
QPointF mapPointToItem(const QPointF &point)
Для заданной точки point в координатах источника, возвращает соответствующую точку в координатах элемента. Это отображение зависит от ориентации.
В зависимости от режима заполнения, эта точка может находиться вне рендерной области.
QPointF mapPointToSource(const QPointF &point)
Для заданной точки point в координатах элемента, возвращает соответствующую точку в координатах источника. Это отображение зависит от ориентации.
Если заданная точка находится вне рендерной области, возвращаемая точка будет находиться вне прямоугольника источника.
QPointF mapPointToSourceNormalized(const QPointF &point)
Для заданной точки point в координатах элемента, возвращает соответствующую точку в нормализованных координатах источника. Это отображение зависит от ориентации.
Если заданная точка находится вне рендерной области, возвращаемая точка будет находиться вне прямоугольника источника. Ограничение не выполняется.
QRectF mapRectToItem(const QRectF &rectangle)
При заданном прямоугольнике rectangle в координатах источника, вернуть соответствующий прямоугольник в координатах элемента. Это отображение зависит от ориентации.
В зависимости от режима заливки, этот прямоугольник может выходить за пределы отрисованного прямоугольника.
QRectF mapRectToSource(const QRectF &rectangle)
При заданном прямоугольнике rectangle в координатах элемента, вернуть соответствующий прямоугольник в координатах источника. Это отображение зависит от ориентации.
Это отображение зависит от ориентации.
Если заданная точка находится за пределами области отрисовки, возвращенная точка будет находиться за пределами прямоугольника источника.
QRectF mapRectToSourceNormalized(const QRectF &rectangle)
При заданном прямоугольнике rectangle в координатах элемента, вернуть соответствующий прямоугольник в нормализованных координатах источника. Это отображение зависит от ориентации.
Это отображение зависит от ориентации.
Если заданная точка находится за пределами области отрисовки, возвращенная точка будет находиться за пределами прямоугольника источника. Никакое принудительное ограничение не выполняется.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qml-qtmultimedia-videooutput.html