public void Publish([FromOptionalArgument] string publishingName, [FromOptionalArgument] string publishingType) { if (string.IsNullOrEmpty(publishingName)) { throw new InvalidOperationException("empty publishing name"); } if (!PublishingHelpers.IsTypeSupported(publishingType)) { throw new InvalidOperationException($"not supported publishing type {publishingType}"); } _publishingType = PublishingHelpers.PublishingTypes[publishingType]; _publisherSessionService.RegisterPublisher(publishingName, this); RtmpSession.SendControlMessageAsync(new StreamBeginMessage() { StreamID = MessageStream.MessageStreamId }); var onStatus = RtmpSession.CreateCommandMessage <OnStatusCommandMessage>(); MessageStream.RegisterMessageHandler <DataMessage>(HandleDataMessage); MessageStream.RegisterMessageHandler <AudioMessage>(HandleAudioMessage); MessageStream.RegisterMessageHandler <VideoMessage>(HandleVideoMessage); onStatus.InfoObject = new AmfObject { { "level", "status" }, { "code", "NetStream.Publish.Start" }, { "description", "Stream is now published." }, { "details", publishingName } }; MessageStream.SendMessageAsync(ChunkStream, onStatus); }
public ActionResult Index(string siteName, string search, int?publishingObject, int?publishingType, int?status, string sortField, string sortDir) { var query = this._manager.CreateQuery(siteName); if (!string.IsNullOrWhiteSpace(search)) { query = query.Where(it => it.ObjectUUID.Contains(search, StringComparison.OrdinalIgnoreCase)); } if (publishingObject.HasValue) { PublishingObject po = (PublishingObject)publishingObject.Value; query = query.Where(it => it.PublishingObject == po); } if (publishingType.HasValue) { PublishingType pt = (PublishingType)publishingType.Value; query = query.Where(it => it.PublishingType == pt); } if (status.HasValue) { QueueStatus qs = (QueueStatus)status; query = query.Where(it => it.Status == qs); } if (!string.IsNullOrWhiteSpace(sortField)) { query = query.SortByField(sortField, sortDir); } else { query = query.OrderByDescending(it => it.UtcCreationDate); } return(View(query.ToList())); }
public PublishingVersionInfo(PluginVersion version) { this._version = version; this.SetStatus(PublishingStatus.Waiting, string.Empty); if (version.VersionNumber.Equals("Current")) { this._type = PublishingType.Release; } else { this._type = PublishingType.Patch; } }
public async Task Publish([FromOptionalArgument] string streamName, [FromOptionalArgument] string publishingType) { if (string.IsNullOrEmpty(streamName)) { throw new InvalidOperationException("empty publishing name"); } if (!PublishingHelpers.IsTypeSupported(publishingType)) { throw new InvalidOperationException($"not supported publishing type {publishingType}"); } _publishingType = PublishingHelpers.PublishingTypes[publishingType]; await RtmpSession.SendControlMessageAsync(new StreamIsRecordedMessage() { StreamID = MessageStream.MessageStreamId }); await RtmpSession.SendControlMessageAsync(new StreamBeginMessage() { StreamID = MessageStream.MessageStreamId }); var onStatus = RtmpSession.CreateCommandMessage <OnStatusCommandMessage>(); MessageStream.RegisterMessageHandler <DataMessage>(HandleData); MessageStream.RegisterMessageHandler <AudioMessage>(HandleAudioMessage); MessageStream.RegisterMessageHandler <VideoMessage>(HandleVideoMessage); MessageStream.RegisterMessageHandler <UserControlMessage>(HandleUserControlMessage); onStatus.InfoObject = new AmfObject { { "level", "status" }, { "code", "NetStream.Publish.Start" }, { "description", "Stream is now published." }, { "details", streamName } }; await MessageStream.SendMessageAsync(ChunkStream, onStatus); _recordFileData = new FileStream(_recordService.GetRecordFilename(streamName) + ".data", FileMode.OpenOrCreate); _recordFileData.SetLength(0); _keyframes = new AmfObject(); _keyframeTimes = new List <object>(); _keyframeFilePositions = new List <object>(); _keyframes.Add("times", _keyframeTimes); _keyframes.Add("filepositions", _keyframeFilePositions); }