Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Attaches an AudioVideoFlow instance to this player.
Namespace: Microsoft.Rtc.Collaboration.AudioVideo
Assembly: Microsoft.Rtc.Collaboration (in Microsoft.Rtc.Collaboration.dll)
Syntax
'Declaration
Public Sub AttachFlow ( _
audioVideoFlow As AudioVideoFlow _
)
'Usage
Dim instance As Player
Dim audioVideoFlow As AudioVideoFlow
instance.AttachFlow(audioVideoFlow)
public void AttachFlow(
AudioVideoFlow audioVideoFlow
)
Parameters
- audioVideoFlow
Type: Microsoft.Rtc.Collaboration.AudioVideo.AudioVideoFlow
The AudioVideoFlow instance to be attached.
Exceptions
| Exception | Condition |
|---|---|
| ArgumentNullException | Thrown when the audioVideoFlow parameter is null. |
| OperationFailureException | Thrown when the operation failed, such as for an overloaded system. |
| InvalidOperationException | Thrown when the operation is invalid for the current object state. |
| InvalidOperationException | Thrown when the operation is invalid because an unbuffered media source is already being played to another AudioVideoFlow attached to this Player. |
Remarks
If the player is already started, the AudioVideoFlow will join in a broadcast fashion.
Examples
The following example attaches and detaches a Player by the time AudioVideoFlow changes its state to Active and Terminated.
C# Attaching and detaching an AudioVideoFlow.
audioVideoFlow.StateChanged += delegate(object sender, MediaFlowStateChangedEventArgs args)
{
AudioVideoFlow avFlow = (AudioVideoFlow)sender;
if(avFlow.State == MediaFlowState.Active)
{
Player player = new Player();
player.AttachFlow(avFlow);
}
else if(avFlow.State == MediaFlowState.Terminated)
{
if (avFlow.Player != null)
{
// As Player accepts multiple AudioVideoFlows, DetachFlow requires an AudioVideoFlow as argument.
avFlow.Player.DetachFlow(avFlow);
}
}
};