Тип QML VideoOutput
Отображение видео или видоискателя камеры. Подробнее...
| Заявление об импорте: | import QtMultimedia 5.6 |
Свойства
- autoOrientation : bool
- contentRect : прямоугольник
- fillMode : перечисление
- filters : список<объект>
- orientation : int
- source : переменная
- sourceRect : прямоугольник
Методы
- 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 : прямоугольник
Это свойство содержит координаты элемента области, которая будет содержать видео для отображения. При определенных режимах заполнения этот прямоугольник будет больше, чем видимая область VideoOutput.
Это свойство полезно, когда другие координаты задаются относительно размеров источника - это относится к относительным (нормализованным) координатам кадра в диапазоне от 0 до 1,0.
Области вне этого будут прозрачными.
См. также mapRectToItem() и mapPointToItem().
fillMode : перечисление
Установите это свойство, чтобы определить, как видео масштабируется для соответствия целевой области.
- Stretch - видео масштабируется для соответствия.
- PreserveAspectFit - видео масштабируется равномерно для соответствия без обрезки
- PreserveAspectCrop - видео масштабируется равномерно для заполнения, с обрезкой при необходимости
По умолчанию режим заполнения - PreserveAspectFit.
filters : список<объект>
Это свойство содержит список видеофильтров, которые применяются к кадрам видео. Порядок фильтров в списке соответствует порядку их вызова для кадров видео. Объекты в списке должны быть экземплярами подкласса QAbstractVideoFilter.
См. также QAbstractVideoFilter.
orientation : int
В некоторых случаях исходный поток видео требует определенной ориентации для корректного отображения. Это относится к источникам, таким как видоискатель камеры, где отображаемый видоискатель должен соответствовать реальности, независимо от поворота остальной части пользовательского интерфейса.
Это свойство позволяет применить поворот (шаг 90 градусов) для компенсации любого поворота пользовательского интерфейса, с положительными значениями по часовой стрелке.
Изменение ориентации также повлияет на отображение координат от источника к области просмотра.
См. также autoOrientation.
source : переменная
Это свойство содержит элемент-источник, предоставляющий кадры видео, такие как MediaPlayer или камера.
Если вы расширяете собственные классы C++ для взаимодействия с VideoOutput, вы можете предоставить класс на основе QObject со свойством mediaObject, которое экспонирует класс, производный от QMediaObject, у которого есть QVideoRendererControl, или вы можете предоставить класс на основе QObject со свойством videoSurface для записи, которое может принимать класс на основе QAbstractVideoSurface и может следовать правильному протоколу для доставки QVideoFrames в него.
sourceRect : прямоугольник
Это свойство содержит область содержимого исходного видео, которая рассматривается для отображения. Значения находятся в координатах пикселей источника, скорректированные с учетом соотношения сторон пикселей источника.
Обратите внимание, что обычно верхний левый угол этого прямоугольника будет 0,0, а ширина и высота будут шириной и высотой входного содержимого. Только когда у источника видео установлена область просмотра, эти значения будут отличаться.
Настройка ориентации не влияет на этот прямоугольник.
См. также 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/archives/qt-5.6/qml-qtmultimedia-videooutput.html