public MediaItem CreateMediaItem(int slotIndex, string streamUrl, IChannel channel) { // Channel is usually only passed as placeholder with ID only, so query the details here IChannelService channelService = GlobalServiceProvider.Get <IChannelService>(); Channel fullChannel = channelService.GetChannel(channel.ChannelId); bool isTv = fullChannel.MediaType == 0; LiveTvMediaItem tvStream = isTv ? SlimTvMediaItemBuilder.CreateMediaItem(slotIndex, streamUrl, fullChannel.ToChannel()) : SlimTvMediaItemBuilder.CreateRadioMediaItem(slotIndex, streamUrl, fullChannel.ToChannel()); if (tvStream != null) { // Add program infos to the LiveTvMediaItem IProgram currentProgram; IProgram nextProgram; if (GetNowNextProgram(channel, out currentProgram, out nextProgram)) { tvStream.AdditionalProperties[LiveTvMediaItem.CURRENT_PROGRAM] = currentProgram; tvStream.AdditionalProperties[LiveTvMediaItem.NEXT_PROGRAM] = nextProgram; } return(tvStream); } return(null); }
public bool WatchRecordingFromBeginning(IProgram program) { string fileOrStream; if (ScheduleControl.GetRecordingFileOrStream(program, out fileOrStream)) { IChannel channel; if (ChannelAndGroupInfo.GetChannel(program.ChannelId, out channel)) { MediaItem recordig = SlimTvMediaItemBuilder.CreateRecordingMediaItem(0, fileOrStream, program, channel); PlayItemsModel.CheckQueryPlayAction(recordig); return(true); } } return(false); }
public bool WatchRecordingFromBeginning(IProgram program) { string fileOrStream; if (ScheduleControl.GetRecordingFileOrStream(program, out fileOrStream)) { IChannel channel; if (ChannelAndGroupInfo.GetChannel(program.ChannelId, out channel)) { MediaItem recordig = SlimTvMediaItemBuilder.CreateRecordingMediaItem(0, fileOrStream, program, channel); PlayerContextConcurrencyMode playMode = GetMatchingPlayMode(); PlayItemsModel.PlayOrEnqueueItem(recordig, true, playMode); return(true); } } return(false); }
public async Task <bool> WatchRecordingFromBeginningAsync(IProgram program) { var result = await ScheduleControl.GetRecordingFileOrStreamAsync(program); if (result.Success) { string fileOrStream = result.Result; var channelResult = await ChannelAndGroupInfo.GetChannelAsync(program.ChannelId); if (channelResult.Success) { MediaItem recordig = SlimTvMediaItemBuilder.CreateRecordingMediaItem(0, fileOrStream, program, channelResult.Result); PlayItemsModel.CheckQueryPlayAction(recordig); return(true); } } return(false); }
protected virtual MediaItem CreateMediaItem(int slotIndex, string streamUrl, IChannel channel, bool isTv, IChannel fullChannel) { LiveTvMediaItem tvStream = isTv ? SlimTvMediaItemBuilder.CreateMediaItem(slotIndex, streamUrl, fullChannel) : SlimTvMediaItemBuilder.CreateRadioMediaItem(slotIndex, streamUrl, fullChannel); if (tvStream != null) { // Add program infos to the LiveTvMediaItem IProgram currentProgram; IProgram nextProgram; if (GetNowNextProgram(channel, out currentProgram, out nextProgram)) { tvStream.AdditionalProperties[LiveTvMediaItem.CURRENT_PROGRAM] = currentProgram; tvStream.AdditionalProperties[LiveTvMediaItem.NEXT_PROGRAM] = nextProgram; } return(tvStream); } return(null); }
protected virtual async Task <MediaItem> CreateMediaItem(int slotIndex, string streamUrl, IChannel channel, bool isTv, IChannel fullChannel) { LiveTvMediaItem tvStream = isTv ? SlimTvMediaItemBuilder.CreateMediaItem(slotIndex, streamUrl, fullChannel) : SlimTvMediaItemBuilder.CreateRadioMediaItem(slotIndex, streamUrl, fullChannel); if (tvStream != null) { // Add program infos to the LiveTvMediaItem var result = await GetNowNextProgramAsync(channel); if (result.Success) { tvStream.AdditionalProperties[LiveTvMediaItem.CURRENT_PROGRAM] = result.Result[0]; tvStream.AdditionalProperties[LiveTvMediaItem.NEXT_PROGRAM] = result.Result[1]; } return(tvStream); } return(null); }
public MediaItem CreateMediaItem(int slotIndex, string streamUrl, IChannel channel) { LiveTvMediaItem tvStream = SlimTvMediaItemBuilder.CreateMediaItem(slotIndex, streamUrl, channel); if (tvStream != null) { // Add program infos to the LiveTvMediaItem IProgram currentProgram; if (GetCurrentProgram(channel, out currentProgram)) { tvStream.AdditionalProperties[LiveTvMediaItem.CURRENT_PROGRAM] = currentProgram; } IProgram nextProgram; if (GetNextProgram(channel, out nextProgram)) { tvStream.AdditionalProperties[LiveTvMediaItem.NEXT_PROGRAM] = nextProgram; } return(tvStream); } return(null); }