TRVCamMultiView.Viewers

<< Click to display table of contents >>

TRVCamMultiView.Viewers

A collection of viewer windows.

type

  TRVCamViewCollection = class(TCollection);

  TRVCamViewItem = class(TCollectionItem)

property Viewers: TRVCamViewCollection;

This is a collection of TRVCamViewItem items. Each item defines properties of one viewer window.

Properties of each item in this collection are described below.

Properties for video viewer (TRVCamViewItem)

Video properties

An item in this collection has the same properties as TRVCamView component (the links below are to the corresponding properties of TRVCamView component):

VideoSource

GUIDFrom, IndexFrom

Title, CaptionParts, ShowCaption, CaptionColor

Color

ShowCameraSearch

UseOptimalVideoResolution

ViewMode

FrameScaleQuality [VCL and LCL]

Additionally, if UseFramePerSec=True (default is False), FramePerSec is assigned to the corresponding TRVCamView.VideoSource.FramePerSec (see also about main viewers).

By default, Color and CaptionColor properties are equal to clNone. It means that the properties of the parent TRVCamMultiView is used instead (ViewerColor and CaptionColor)

Some viewers can be chosen as main viewers: assign MainViewer=True. Main viewers display videos from the selected viewer, see ViewerIndex. Normally, it makes sense to assign only one main viewer, and make its window larger than other viewers. When the viewer becomes selected, FramePerSec and UseFramePerSec of the main viewer is used instead of the properties of the selected viewer (if there are several main viewers, the maximum of their FramePerSec is used). So you can specify the lager FPS value for the selected window than for normal windows.

Positioning

Left, Top, Width, Height properties define the position and the size of the video viewer. These values are measured in logical pixels at 96 DPI. If the screen DPI is different, the size and position are recalculated accordingly.

When the multiviewer is resized, all video viewers may be resized too. A resizing mode depends on the multiviewer's ScaleViewers property.

If it is True, Left, Top, Width, Height of viewers are changed proportionally to the new size.

If it is False, viewers are resized according to their AlignVideoViewer and Anchor properties.

type
  TRVMAnchor = (rvmaLeft, rvmaTop, rvmaRight, rvmaBottom);
  TRVMAnchors = set of TRVMAnchor;

property Anchors: TRVMAnchors;

Use Anchors to ensure that the video viewer maintains its current position relative to an edge of multiviewer, even if the multiviewer is resized. When the multiviewer is resized, the video viewer holds its position relative to the edges to which it is anchored.  If the video viewer is anchored to opposite edges of its multiviewer, the video viewer stretches when its multiviewer is resized. For example, if the video viewer has its Anchors property set to [rvmaLeft, rvmaRight], the video viewer stretches when the width of its multiviewer changes. The default value for Anchors is [rvmaLeft, rvmaTop]. Anchors are used only if the multiviewer's ScaleViewers = False.

type
  TRVAlignVideoViewer = (rvavvTop, rvavvBottom, rvavvLeft, rvavvRight,
    rvavvClient, rvavvNone);
property AlignVideoViewer: TRVAlignVideoViewer;

Use AlignVideoViewer to align the video viewer to the top, bottom, left, or right of its multiviewer and have it remain there even if the size of the multiviewer changes. When the multiviewer is resized, an aligned video viewer also resizes so that it continues to span the top, bottom, left, or right edge of the multiviewer. The default value of AlignVideoViewer is rvavvNone, which means the video viewer remains where it is positioned on the multiviewer. If AlignVideoViewer is set to rvavvClient, the video viewer fills the entire multivewer area. AlignVideoViewer is used only if the multiviewer's ScaleViewers = False.

To get the viewer coordinates, you can use the method of TRVCamViewItem:

procedure .GetViewerRects(out VideoRect, AudioRect: TRVMRect);

This method returns areas where video and audio viewers are displayed in the parent TRVCamMultiView control. You can use this method in a custom drawing event.

Audio viewer properties

In addition to video viewer, a viewer window may have an optional audio viewer (an integrated TRVMicrophoneView component). It is controlled by the following properties:

AudioViewer: Boolean shows/hides an audio viewer (default value = False)

AlignAudioViewer: TRVAlignAudioViewer defines the position of the audio viewer (default value = rvaavRight)

AudioViewerColor: TRVMColor defines the background color of the audio viewer.

type
  TRVAlignAudioViewer = (rvaavTop, rvaavBottom, rvaavLeft, rvaavRight,

    rvaavClient);

Value

Meaning

rvaavTop

Audio viewer above video viewer

rvaavBottom

Audio viewer below video viewer

rvaavLeft

Audio viewer to the left side of video viewer

rvaavRight

Audio viewer to the right side of video viewer

rvaavClient

Audio viewer occupies the whole area, hiding video viewer

If VideoSource property points to TRVCamReceiver, an audio viewer displays activity of this receiver: VideoSource and GUIDFrom are assigned to ReceiverSource and GUIDFrom properties of the integrated TRVMicrophoneView component, respectively.

If VideoSource property points to TRVCamera, an audio viewer displays activity of the component linked to AudioSource property of the parent TRVCamMultiView.