MediaHandle MediaDuplicate (MediaHandle media, int type,
NativeException ex);*/
- /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_state")]
+ [DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_state")]
public static extern
- int MediaGetState (MediaHandle media, NativeException ex);*/
+ State MediaGetState (MediaHandle media, NativeException ex);
/*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_subitems")]
public static extern
void PlayerSetRate (PlayerHandle player, float rate,
NativeException ex);
- /*[DllImport ("libvlc.dll",
+ [DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_state")]
public static extern
- void PlayerSetState (PlayerHandle player, float rate,
- NativeException ex); */
+ State PlayerGetState (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_fps")]
}
};
+ /**
+ * @brief State: media/player state
+ *
+ * Media and Player objects are always in one of these state.
+ * @see Media::State and @see Player::State.
+ */
+ public enum State
+ {
+ NothingSpecial, /**< Nothing going on */
+ Opening, /**< Being opened */
+ Buffering, /**< Buffering before play */
+ Playing, /**< Playing */
+ Paused, /**< Paused */
+ Stopped, /**< Stopped */
+ Ended, /**< Played until the end */
+ Error, /**< Failed */
+ };
+
/**
* @brief Media: a source media
* @ingroup API
return new Media (LibVLC.MediaDuplicate (Handle));
}
+ /**
+ * Current state of the media.
+ */
+ public State State
+ {
+ get
+ {
+ State ret = LibVLC.MediaGetState (Handle, ex);
+ Raise ();
+ return ret;
+ }
+ }
+
/**
* Duration of the media in microseconds. The precision of the result
* depends on the input stram protocol and file format. The value
}
}
+ /**
+ * Current state of the player.
+ */
+ public State State
+ {
+ get
+ {
+ State ret = LibVLC.PlayerGetState (Handle, ex);
+ Raise ();
+ return ret;
+ }
+ }
+
/**
* Frame rate in unit/seconds.
*/
Console.WriteLine ("Media at {0}", m.Location);
Console.WriteLine (" duration: {0}µs", m.Duration);
Console.WriteLine (" preparsed: {0}", m.IsPreparsed);
+ Console.WriteLine (" state: {0}", m.State);
}
private static void DumpPlayer (Player p)
return;
int percent = (int)(p.Position * 100);
- Console.Write ("{0} of {1} ms ({2}%)\r", p.Time, p.Length,
- percent);
+ Console.Write ("{0}: {1} of {2} ms ({3}%)\r", p.State,
+ p.Time, p.Length, percent);
}
private static void Sleep (int msec)
/**
* Note the order of libvlc_state_t enum must match exactly the order of
- * @see mediacontrol_PlayerStatus and @see input_state_e enums.
+ * @see mediacontrol_PlayerStatus, @see input_state_e enums,
+ * and VideoLAN.LibVLC.State (at bindings/cil/src/media.cs).
*
* Expected states by web plugins are:
* IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4,