/// <summary> /// Create the local sender track from the current media track source if that source /// is active and enabled. Otherwise do nothing. /// </summary> private void CreateSenderIfNeeded() { // Only create a sender track if the source is active, i.e. has an underlying frame source. if (_senderTrack == null && _source != null && _source.isActiveAndEnabled) { if (MediaKind == MediaKind.Audio) { var audioSource = (_source as AudioTrackSource); var initConfig = new LocalAudioTrackInitConfig { trackName = _senderTrackName }; _senderTrack = LocalAudioTrack.CreateFromSource(audioSource.Source, initConfig); } else { Debug.Assert(MediaKind == MediaKind.Video); var videoSource = (_source as VideoTrackSource); var initConfig = new LocalVideoTrackInitConfig { trackName = _senderTrackName }; _senderTrack = LocalVideoTrack.CreateFromSource(videoSource.Source, initConfig); } } }
private void CreateSender() { Debug.Assert(_senderTrack == null); if (MediaKind == MediaKind.Audio) { var audioSource = (AudioTrackSource)_source; var initConfig = new LocalAudioTrackInitConfig { trackName = _senderTrackName }; _senderTrack = LocalAudioTrack.CreateFromSource(audioSource.Source, initConfig); } else { Debug.Assert(MediaKind == MediaKind.Video); var videoSource = (VideoTrackSource)_source; var initConfig = new LocalVideoTrackInitConfig { trackName = _senderTrackName }; _senderTrack = LocalVideoTrack.CreateFromSource(videoSource.Source, initConfig); } }
private void DestroySenderIfNeeded() { if (_senderTrack != null) { _senderTrack.Dispose(); _senderTrack = null; } }
private void DestroySender() { _senderTrack.Dispose(); _senderTrack = null; }