How do I determine if MediaElement is playing?

前端 未结 8 2223
闹比i
闹比i 2021-01-01 09:44

Seems simple enough, but I cannot figure out any way to determine what the state of a MediaElement is. There are various properties for some states (such as IsBuffering) but

8条回答
  •  [愿得一人]
    2021-01-01 10:15

    And based on Rich S an extension can be implement

    //don't forget
    using System.Windows.Controls;
    using System.Reflection;
    
    
     public static class Util
        {
         public static MediaState GetMediaState(this MediaElement myMedia)
            {
                FieldInfo hlp = typeof(MediaElement).GetField("_helper", BindingFlags.NonPublic | BindingFlags.Instance);
                object helperObject = hlp.GetValue(myMedia);
                FieldInfo stateField = helperObject.GetType().GetField("_currentState", BindingFlags.NonPublic | BindingFlags.Instance);
                MediaState state = (MediaState)stateField.GetValue(helperObject);
                return state;
            }
        }
    

提交回复
热议问题