Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
 public void Stop()
 {
     CheckShutdown();
     Trace.WriteLine("RtspMediaSource::Stop()");
     if (!IsPlaying && !IsPaused)
     {
         throw new SharpDXException(ResultCode.InvalidStateTransition);
     }
     ChangeState(SourceState.Stopped);
     _eventGenerator.QueueEventParamNone(MediaEventTypes.SourceStopped);
 }