Тип 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 и Camera.
Документация по свойствам
autoOrientation : bool
Это свойство позволяет включить и выключить автоматическую ориентацию потока видео, чтобы его ориентация всегда соответствовала ориентации экрана. Если autoOrientation включено, свойство orientation перезаписывается.
По умолчанию autoOrientation отключено.
Это свойство QML было добавлено в QtMultimedia 5.2.
См. также orientation.
contentRect : rectangle
Это свойство содержит координаты элемента области, которая содержала бы видео для рендеринга. При определенных режимах заполнения этот прямоугольник будет больше, чем видимая область VideoOutput.
Это свойство полезно, когда другие координаты заданы относительно размеров источника — это применяется для относительных (нормализованных) координат кадра в диапазоне от 0 до 1,0.
Области вне этого будут прозрачными.
См. также mapRectToItem() и mapPointToItem().
fillMode : перечисление
Установите это свойство для определения того, как видео масштабируется для соответствия целевой области.
- Stretch - видео масштабируется для соответствия.
- PreserveAspectFit - видео равномерно масштабируется для соответствия без обрезки.
- PreserveAspectCrop - видео равномерно масштабируется для заполнения, при необходимости обрезается.
По умолчанию режим заполнения - PreserveAspectFit.
filters : список<объект>
Это свойство содержит список фильтров видео, которые применяются к кадрам видео. Порядок фильтров в списке соответствует порядку их вызова для кадров видео. Объекты в списке должны быть экземплярами подкласса QAbstractVideoFilter.
См. также QAbstractVideoFilter.
orientation : int
В некоторых случаях исходный видеопоток требует определенной ориентации для правильного отображения. Это включает источники, такие как видоискатель камеры, где отображаемый видоискатель должен соответствовать реальности, независимо от поворота остальной части пользовательского интерфейса.
Это свойство позволяет применить поворот (шагами по 90 градусов) для компенсации любого поворота пользовательского интерфейса, при этом положительные значения соответствуют против часовой стрелки.
Изменение ориентации также повлияет на отображение координат от источника до области просмотра.
См. также autoOrientation.
source : variant
Это свойство содержит элемент-источник, предоставляющий кадры видео, такие как MediaPlayer или Camera.
Если вы расширяете свои собственные классы C++ для взаимодействия с VideoOutput, вы можете предоставить класс на основе QObject со свойством mediaObject, которое экспонирует класс, производный от QMediaObject, имеющий доступный QVideoRendererControl, или вы можете предоставить класс на основе QObject со свойством videoSurface, которое может принимать класс на основе QAbstractVideoSurface и может следовать правильному протоколу для передачи QVideoFrames в него.
sourceRect : rectangle
Это свойство содержит область исходного видеоконтента, которая рассматривается для рендеринга. Значения указаны в пиксельных координатах источника, скорректированных для соотношения сторон пикселей источника.
Обратите внимание, что обычно верхний левый угол этого прямоугольника будет 0,0, а ширина и высота будут шириной и высотой входного контента. Только когда у видеоисточника установлен viewport, эти значения будут отличаться.
Настройка ориентации не влияет на этот прямоугольник.
См. также QVideoSurfaceFormat::pixelAspectRatio() и QVideoSurfaceFormat::viewport().
Документация по методам
QPointF mapNormalizedPointToItem(const QPointF &point) const
Вводя нормализованные координаты point (то есть каждый компонент в диапазоне от 0 до 1,0), вернуть преобразованную точку, соответствующую ей (в координатах элемента). Это отображение зависит от ориентации.
В зависимости от режима заполнения эта точка может находиться за пределами рендерируемого прямоугольника.
QRectF mapNormalizedRectToItem(const QRectF &rectangle) const
Вводя прямоугольник rectangle в нормализованных координатах (то есть каждый компонент в диапазоне от 0 до 1,0), вернуть преобразованный прямоугольник, соответствующий ему (в координатах элемента). Это отображение зависит от ориентации.
В зависимости от режима заполнения этот прямоугольник может выходить за пределы рендерируемого прямоугольника.
QPointF mapPointToItem(const QPointF &point) const
Вводя точку point в координатах источника, вернуть соответствующую точку в координатах элемента. Это отображение зависит от ориентации.
В зависимости от режима заполнения эта точка может находиться за пределами рендерируемого прямоугольника.
QPointF mapPointToSource(const QPointF &point) const
Вводя точку point в координатах элемента, вернуть соответствующую точку в координатах источника. Это отображение зависит от ориентации.
Если введенная точка находится за пределами рендерируемой области, возвращаемая точка будет находиться за пределами прямоугольника источника.
QPointF mapPointToSourceNormalized(const QPointF &point) const
Вводя точку point в координатах элемента, вернуть соответствующую точку в нормализованных координатах источника. Это отображение зависит от ориентации.
Если введенная точка находится за пределами рендерируемой области, возвращаемая точка будет находиться за пределами прямоугольника источника. Ограничение не выполняется.
QRectF mapRectToItem(const QRectF &rectangle) const
Вводя прямоугольник rectangle в координатах источника, вернуть соответствующий прямоугольник в координатах элемента. Это отображение зависит от ориентации.
В зависимости от режима заполнения, этот прямоугольник может выходить за пределы отрисованного прямоугольника.
QRectF mapRectToSource(const QRectF &rectangle) const
Для заданного прямоугольника rectangle в координатах элемента вернуть соответствующий прямоугольник в координатах источника. Это отображение зависит от ориентации.
Это отображение зависит от ориентации.
Если заданная точка находится за пределами области отрисовки, возвращаемая точка будет за пределами прямоугольника источника.
QRectF mapRectToSourceNormalized(const QRectF &rectangle) const
Для заданного прямоугольника rectangle в координатах элемента вернуть соответствующий прямоугольник в нормализованных координатах источника. Это отображение зависит от ориентации.
Это отображение зависит от ориентации.
Если заданная точка находится за пределами области отрисовки, возвращаемая точка будет за пределами прямоугольника источника. Прижимание не выполняется.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qml-qtmultimedia-videooutput.html