/// <summary>
        /// Pauses and rewinds the media
        /// This command invalidates all queued commands
        /// </summary>
        /// <returns>The awaitable command</returns>
        public async Task StopAsync()
        {
            StopCommand command = null;

            lock (SyncLock)
            {
                command = Commands.FirstOrDefault(c => c.CommandType == MediaCommandType.Stop) as StopCommand;
                if (command == null)
                {
                    command = new StopCommand(this);
                    EnqueueCommand(command);
                }
            }

            await command.TaskContext;
        }
        /// <summary>
        /// Pauses and rewinds the media
        /// </summary>
        /// <returns></returns>
        public async Task Stop()
        {
            StopCommand command = null;

            lock (SyncLock)
            {
                command = Commands.FirstOrDefault(c => c.CommandType == MediaCommandType.Stop) as StopCommand;
                if (command == null)
                {
                    command = new StopCommand(this);
                    Commands.Add(command);
                }
            }

            await command.Promise;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Pauses and rewinds the media
        /// </summary>
        public void Stop()
        {
            StopCommand command = null;

            lock (SyncLock)
            {
                command = Commands.FirstOrDefault(c => c.CommandType == MediaCommandType.Stop) as StopCommand;
                if (command == null)
                {
                    command = new StopCommand(this);
                    EnqueueCommand(command);
                }
            }

            WaitFor(command);
        }