diff options
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/LiveTv/LiveTvService.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 16 |
2 files changed, 30 insertions, 0 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs index 588fad8bd..61883ddaa 100644 --- a/MediaBrowser.Api/LiveTv/LiveTvService.cs +++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs @@ -198,6 +198,13 @@ namespace MediaBrowser.Api.LiveTv public string Id { get; set; } } + [Route("/LiveTv/Channels/{Id}/Stream", "GET")] + public class GetInternalChannelStream + { + [ApiMember(Name = "Id", Description = "Channel Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public string Id { get; set; } + } + public class LiveTvService : BaseApiService { private readonly ILiveTvManager _liveTvManager; @@ -399,6 +406,13 @@ namespace MediaBrowser.Api.LiveTv return ToStreamResult(stream.Stream, stream.MimeType); } + public object Get(GetInternalChannelStream request) + { + var stream = _liveTvManager.GetChannelStream(request.Id, CancellationToken.None).Result; + + return ToStreamResult(stream.Stream, stream.MimeType); + } + public object Get(GetRecordingGroups request) { var result = _liveTvManager.GetRecordingGroups(new RecordingGroupQuery diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index 34ec15a70..1e2ae58b2 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -902,6 +902,22 @@ namespace MediaBrowser.Api.Playback item = recording; } + else if (string.Equals(request.Type, "Channel", StringComparison.OrdinalIgnoreCase)) + { + var channel = LiveTvManager.GetInternalChannel(request.Id); + + state.VideoType = VideoType.VideoFile; + state.IsInputVideo = string.Equals(channel.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase); + state.PlayableStreamFileNames = new List<string>(); + + state.MediaPath = string.Format("http://localhost:{0}/mediabrowser/LiveTv/Channels/{1}/Stream", + ServerConfigurationManager.Configuration.HttpServerPortNumber, + request.Id); + + state.IsRemote = true; + + item = channel; + } else { item = DtoService.GetItemByDtoId(request.Id); |
