public IPlayer GetPlayer(MediaItem mediaItem) { string mimeType; string title; if (!mediaItem.GetPlayData(out mimeType, out title)) { return(null); } if (mimeType != LiveTvMediaItem.MIME_TYPE_TV && mimeType != LiveTvMediaItem.MIME_TYPE_RADIO) { return(null); } IResourceLocator locator = mediaItem.GetResourceLocator(); BaseDXPlayer player = mimeType == LiveTvMediaItem.MIME_TYPE_TV ? (BaseDXPlayer) new LiveTvPlayer() : new LiveRadioPlayer(true); try { player.SetMediaItem(locator, title); } catch (Exception e) { ServiceRegistration.Get <ILogger>().Warn("SlimTvPlayerBuilder: Error playing media item '{0}'", e, locator); player.Dispose(); return(null); } return(player); }
public TsReaderStreamInfoHandler(ISubtitleStream subtitleStream) { if (subtitleStream == null) { return; } int count = 0; _subtitleStream = subtitleStream; subtitleStream.GetSubtitleStreamCount(ref count); if (count > 0) { StreamInfo subStream = new StreamInfo(null, NO_STREAM_INDEX, VideoPlayer.NO_SUBTITLES, 0); AddUnique(subStream); } for (int i = 0; i < count; ++i) { //FIXME: language should be passed back also as LCID SubtitleLanguage language = new SubtitleLanguage(); subtitleStream.GetSubtitleStreamLanguage(i, ref language); int lcid = BaseDXPlayer.LookupLcidFromName(language.lang); // Note: the "type" is no longer considered in MP1 code as well, so I guess DVBSub3 only supports Bitmap subs at all. string name = language.lang; StreamInfo subStream = new StreamInfo(null, i, name, lcid); AddUnique(subStream); } }
public TsReaderTeletextInfoHandler(ITeletextSource teletextSource) { if (teletextSource == null) { return; } int teletextStreamCount = 0; _teletextSource = teletextSource; teletextSource.GetTeletextStreamCount(ref teletextStreamCount); if (teletextStreamCount > 0) { StreamInfo subStream = new StreamInfo(null, NO_STREAM_INDEX, VideoPlayer.GetNoSubsName(), 0); AddUnique(subStream); } for (int i = 0; i < teletextStreamCount; ++i) { //FIXME: language should be passed back also as LCID SubtitleLanguage language = new SubtitleLanguage(); teletextSource.GetTeletextStreamLanguage(i, ref language); int lcid = BaseDXPlayer.LookupLcidFromName(language.lang); string name = language.lang; StreamInfo subStream = new StreamInfo(null, i, name, lcid); AddUnique(subStream); } }
public void StartBackgroundPlayback() { if (!IsEnabled) { return; } IScreenControl screenControl = ServiceRegistration.Get <IScreenControl>(); IVideoPlayerSynchronizationStrategy current = screenControl.VideoPlayerSynchronizationStrategy; if (current != _backgroundPlayerStrategy) { // We replace the default strategy with our own to prefer the video background player. screenControl.VideoPlayerSynchronizationStrategy = _backgroundPlayerStrategy; } IPlayerManager playerManager = ServiceRegistration.Get <IPlayerManager>(); if (_backgroundPsc == null) { _backgroundPsc = playerManager.OpenSlot(); } if (_backgroundPsc == null) { return; } // If we already have a player active, don't start a new one. IPlayer currentPlayer = _backgroundPsc.CurrentPlayer; if (currentPlayer != null && currentPlayer.State == PlayerState.Active) { return; } try { _backgroundPsc.Play(_video, StartTime.AtOnce); BaseDXPlayer player = _backgroundPsc.CurrentPlayer as BaseDXPlayer; if (player != null) { player.AutoRepeat = true; } VideoPlayer = player as ISharpDXVideoPlayer; } catch (Exception ex) { ServiceRegistration.Get <ILogger>().Error("VideoBackgroundModel: Error opening MediaItem {0} for background playback!", ex, _videoFilename); } }
public MpcStreamInfoHandler() { var subtitleCount = MpcSubtitles.GetCount(); for (int i = 0; i < subtitleCount; ++i) { string subtitleTrackName = MpcSubtitles.GetTrackName(i); int lcid = BaseDXPlayer.LookupLcidFromName(subtitleTrackName); StreamInfo subStream = new StreamInfo(null, i, subtitleTrackName, lcid); AddUnique(subStream); } AddUnique(new StreamInfo(null, subtitleCount + 1, VideoPlayer.NO_SUBTITLES, 0)); }