internal static void RaiseFFmpegMessageLogged(object sender, MediaLogMessage e) { GuiContext.Current.EnqueueInvoke(() => { FFmpegMessageLogged?.Invoke(sender, new MediaLogMessageEventArgs(e)); }); }
internal static void RaiseFFmpegMessageLogged(object sender, MediaLogMessage e) { WindowsPlatform.Instance.Gui?.EnqueueInvoke(DispatcherPriority.Background, new Action <MediaLogMessage>((eventArgs) => { FFmpegMessageLogged?.Invoke(sender, new MediaLogMessageEventArgs(e)); }), e); }
/// <summary> /// Initializes static members of the <see cref="MediaElement"/> class. /// </summary> static MediaElement() { MediaEngine.FFmpegMessageLogged += (s, message) => FFmpegMessageLogged?.Invoke(typeof(MediaElement), new MediaLogMessageEventArgs(message)); // A GUI context must be registered Library.RegisterGuiContext(GuiContext.Current); // Content property cannot be changed. ContentProperty.OverrideMetadata(typeof(MediaElement), new FrameworkPropertyMetadata(null, OnCoerceContentValue)); var style = new Style(typeof(MediaElement), null); style.Setters.Add(new Setter(FlowDirectionProperty, FlowDirection.LeftToRight)); style.Seal(); StyleProperty.OverrideMetadata(typeof(MediaElement), new FrameworkPropertyMetadata(style)); }
/// <summary> /// Initializes static members of the <see cref="MediaElement"/> class. /// </summary> static MediaElement() { var style = new Style(typeof(MediaElement), null); style.Setters.Add(new Setter(FlowDirectionProperty, FlowDirection.LeftToRight)); style.Seal(); StyleProperty.OverrideMetadata(typeof(MediaElement), new FrameworkPropertyMetadata(style)); // Platform specific implementation Platform.SetDllDirectory = NativeMethods.SetDllDirectory; Platform.CopyMemory = NativeMethods.CopyMemory; Platform.FillMemory = NativeMethods.FillMemory; Platform.CreateTimer = (priority) => { return(new CustomDispatcherTimer((DispatcherPriority)priority)); }; // Setup the Platform-specific factory callbacks Platform.UIInvoke = (priority, action) => WPFUtils.UIInvoke((DispatcherPriority)priority, action); Platform.UIEnqueueInvoke = (priority, action, args) => WPFUtils.UIEnqueueInvoke((DispatcherPriority)priority, action, args); Platform.CreateRenderer = (mediaType, m) => { if (mediaType == MediaType.Audio) { return(new AudioRenderer(m)); } else if (mediaType == MediaType.Video) { return(new VideoRenderer(m)); } else if (mediaType == MediaType.Subtitle) { return(new SubtitleRenderer(m)); } throw new ArgumentException($"No suitable renderer for Media Type '{mediaType}'"); }; // Simply forward the calls MediaElementCore.FFmpegMessageLogged += (o, e) => FFmpegMessageLogged?.Invoke(o, e); }
public static void RaiseFFmpegMessageLogged(LoggingMessage message) => FFmpegMessageLogged?.Invoke(null, message);
internal static void RaiseFFmpegMessageLogged(object sender, MediaLogMessage e) { FFmpegMessageLogged?.Invoke(sender, new MediaLogMessageEventArgs(e)); }
/// <summary> /// Raises the FFmpegMessageLogged event /// </summary> /// <param name="eventArgs">The <see cref="MediaLogMessagEventArgs" /> instance containing the event data.</param> internal static void RaiseFFmpegMessageLogged(MediaLogMessagEventArgs eventArgs) { FFmpegMessageLogged?.Invoke(typeof(MediaElement), eventArgs); }