private void HandleStateChange(RtspMediaSource.SourceState state) { if (!IsActive) { return; } switch (state) { case RtspMediaSource.SourceState.Playing: _eventGenerator.QueueEventParamVar(MediaEventTypes.StreamStarted, Guid.Empty, Result.Ok, new Variant { Value = 0L }); break; case RtspMediaSource.SourceState.Paused: _eventGenerator.QueueEventParamNone(MediaEventTypes.StreamPaused); break; case RtspMediaSource.SourceState.Stopped: ClearQueue(); _eventGenerator.QueueEventParamNone(MediaEventTypes.StreamStopped); break; case RtspMediaSource.SourceState.Shutdowned: ClearQueue(); _eventGenerator.Shutdown(); break; default: break; } }
public void Stop() { CheckShutdown(); Trace.WriteLine("RtspMediaSource::Stop()"); if (!IsPlaying && !IsPaused) { throw new SharpDXException(ResultCode.InvalidStateTransition); } ChangeState(SourceState.Stopped); _eventGenerator.QueueEventParamNone(MediaEventTypes.SourceStopped); }