Share via


Using an AudioVideoFlow

The AudioVideoFlow, AudioControl, and AudioChannel classes can be thought of as having the logical relationship shown in the following illustration. The Audio property on an AudioVideoFlow instance provides access to the AudioControl instance, and the GetChannels() method on the AudioControl instance returns a read-only IDictionary that can be used to find an AudioChannel instance by its label.

Note

In Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK, an AudioControl instance must have exactly one AudioChannel instance.

Logical AudioVideoFlow structure

Hh364892.36586784-d58e-4645-8629-df3d6c4b08d3(en-us,office.14).png

The preceding illustration also shows several of the properties on the three classes. Each property on an outer class affects not only its own class, but can affect an inner class. For example, the EncryptionPolicy indicates whether channel encryption is not supported, supported, or required, and therefore affects the value of the Encrypted property on the AudioChannel instance. The Encrypted value can be true if channel encryption is supported or required, but must be false if channel encryption is not supported.

Because the AudioVideoFlow class has no public constructors, it is not possible to directly create an instance of this class. Instead, an application must use the AudioVideoFlow instance created when an AudioVideoCall instance is created (and accessible through the Flow property on the AudioVideoCall instance). If an application intends to change the settings on an AudioVideoFlow instance, it must create an AudioVideoFlowTemplate instance to do so. For more information, see Using an AudioVideoFlowTemplate.