Exemplo n.º 1
0
        public MediaMetaData GetMetaData(string mediaItemFilePath)
        {
            MediaMetaData result = null;

            try
            {
                using (var tf = TagLib.File.Create(mediaItemFilePath))
                {
                    tf.Mode = TagLib.File.AccessMode.Read;

                    result = new MediaMetaData
                    {
                        Title    = StripNewLines(tf.Tag?.Title),
                        Duration = tf.Properties?.Duration ?? TimeSpan.Zero
                    };
                }
            }
            catch (System.IO.IOException)
            {
                Log.Logger.Error($"Could not get metadata from file: {mediaItemFilePath} (in use)");
            }
            catch (Exception ex)
            {
                Log.Logger.Error(ex, $"Could not get metadata from file: {mediaItemFilePath}");
            }

            return(result);
        }
Exemplo n.º 2
0
        private string GetMediaTitle(string filePath, MediaMetaData metaData)
        {
            if (_optionsService.UseInternalMediaTitles && metaData != null && !string.IsNullOrEmpty(metaData.Title))
            {
                return(metaData.Title);
            }

            return(Path.GetFileNameWithoutExtension(filePath));
        }
Exemplo n.º 3
0
        public void Add(DisplayData dd)
        {
            if (dd == null)
            {
                return;
            }

            switch (dd.DisplayType)
            {
            case DisplayType.ContentReference:
            {
                if ((dd.Data is ContentReference) && (((ContentReference)dd.Data).ContentID != null))
                {
                    data.Add(new Pair <byte[], DisplayData>(((ContentReference)dd.Data).ContentID, dd));
                }

                break;
            }

            case DisplayType.MediaMetaData:
            {
                if (dd.Data is MediaMetaData)
                {
                    MediaMetaData mmd = dd.Data as MediaMetaData;

                    if (mmd != null)
                    {
                        foreach (ContentReference cref in mmd)
                        {
                            data.Add(new Pair <byte[], DisplayData>(cref.ContentID, dd));
                        }
                    }
                }

                break;
            }
            }
        }
Exemplo n.º 4
0
 private int GetMediaDuration(MediaMetaData metaData)
 {
     return(metaData != null ? (int)metaData.Duration.TotalMilliseconds / 10 : 0);
 }
Exemplo n.º 5
0
        public RendererBase CreateRenderer(AtomicBlockBase parent, DisplayData data, SlotData slotData, SlotStyleData slotStyleData, TableLayoutItemInfo layout)
        {
            RendererBase res = null;

            if (data != null)
            {
                switch (data.DisplayType)
                {
                case DisplayType.String:
                    res = new TextRenderer(parent);
                    break;

                case DisplayType.ContentReference:
                {
                    ContentReference cref = data.Data as ContentReference;

                    if (cref != null)
                    {
                        switch (cref.MediaType)
                        {
                        case MediaPrimitiveType.Image:
                        case MediaPrimitiveType.ImageStrip:
                            res = new ImageRenderer(parent);
                            break;

                        default:
                            DebugHelper.Out("Unsupported content reference media type: {0}", cref.MediaType);
                            break;
                        }
                    }

                    break;
                }

                case DisplayType.MediaMetaData:
                {
                    MediaMetaData mmd = data.Data as MediaMetaData;

                    if (mmd != null)
                    {
                        ContentReference cref = mmd[Core.System.CurrentDeviceGroup];

                        if (cref != null)
                        {
                            switch (cref.MediaType)
                            {
                            case MediaPrimitiveType.Image:
                            case MediaPrimitiveType.ImageStrip:
                                res = new ImageRenderer(parent);
                                break;

                            case MediaPrimitiveType.String:
                                res = new TextRenderer(parent);
                                break;

                            default:
                                DebugHelper.Out("Unsupported content reference media type: {0}", cref.MediaType);
                                break;
                            }
                        }
                    }

                    break;
                }

                case DisplayType.EditableString:
                    res = new TextEntryRenderer(parent);
                    break;

                default:     //IMPLEMENT: more display types
                    DebugHelper.Out("Unsupported renderer type: {0}", data.DisplayType);
                    break;
                }

                if (res != null)
                {
                    res.SetDisplayData(data);
                    res.ApplyFormattingAndLayout(slotData, slotStyleData, layout);
                }
            }

            return(res);
        }