예제 #1
0
        public void Init(Device device, TranscodeSettings[] transcodeSettings)
        {
            _transcodeSettings = transcodeSettings;
            _device = device;
            _device.PlaybackChanged += Device_PlaybackChanged;
            _device.CurrentIdChanged += Device_CurrentIdChanged;
            _device.Start();

            _updateTimer = new Timer(1000);
            _updateTimer.Elapsed += updateTimer_Elapsed;
            _updateTimer.Start();
        }
예제 #2
0
        public static PlaylistItem GetBasicConfig(BaseItem item, TranscodeSettings[] profileTranscodings)
        {

            var playlistItem = new PlaylistItem();
            playlistItem.ItemId = item.Id.ToString();

            if (string.Equals(item.MediaType, Model.Entities.MediaType.Video, StringComparison.OrdinalIgnoreCase))
            {
                playlistItem.IsVideo = true;
            }
            else
            {
                playlistItem.IsAudio = true;
            }


            var path = item.Path.ToLower();

            //Check the DlnaProfile associated with the renderer
            if (profileTranscodings != null)
            {
                foreach (TranscodeSettings transcodeSetting in profileTranscodings)
                {
                    if (string.IsNullOrWhiteSpace(transcodeSetting.Container))
                        continue;
                    if (path.EndsWith(transcodeSetting.Container))
                    {
                        playlistItem.Transcode = true;
                        playlistItem.FileFormat = transcodeSetting.TargetContainer;
                        return playlistItem;
                    }
                }
            }
            if (playlistItem.IsVideo)
            {

                //Check to see if we support serving the format statically
                foreach (string supported in PlayToConfiguration.SupportedStaticFormats)
                {
                    if (path.EndsWith(supported))
                    {
                        playlistItem.Transcode = false;
                        playlistItem.FileFormat = supported;
                        return playlistItem;
                    }
                }

                playlistItem.Transcode = true;
                playlistItem.FileFormat = "ts";
            }
            else
            {
                foreach (string supported in PlayToConfiguration.SupportedStaticFormats)
                {
                    if (path.EndsWith(supported))
                    {
                        playlistItem.Transcode = false;
                        playlistItem.FileFormat = supported;
                        return playlistItem;
                    }
                }

                playlistItem.Transcode = true;
                playlistItem.FileFormat = "mp3";
            }

            return playlistItem;
        }