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); }
private string GetMediaTitle(string filePath, MediaMetaData metaData) { if (_optionsService.UseInternalMediaTitles && metaData != null && !string.IsNullOrEmpty(metaData.Title)) { return(metaData.Title); } return(Path.GetFileNameWithoutExtension(filePath)); }
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; } } }
private int GetMediaDuration(MediaMetaData metaData) { return(metaData != null ? (int)metaData.Duration.TotalMilliseconds / 10 : 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); }