Пример #1
0
 private void OnStateChange(IntPtr player, GstState old_state, GstState new_state, GstState pending_state)
 {
     // Start by clearing any timeout we might have
     StopIterating();
     if (CurrentState != PlayerState.Loaded && old_state == GstState.Ready && new_state == GstState.Paused && pending_state == GstState.Playing)
     {
         if (ready_timeout != 0)
         {
             Application.IdleTimeoutRemove(ready_timeout);
             ready_timeout = 0;
         }
         OnStateChanged(PlayerState.Loaded);
         return;
     }
     else if (old_state == GstState.Paused && new_state == GstState.Playing && pending_state == GstState.VoidPending)
     {
         if (CurrentState == PlayerState.Loaded)
         {
             OnEventChanged(PlayerEvent.StartOfStream);
         }
         OnStateChanged(PlayerState.Playing);
         // Start iterating only when going to playing
         StartIterating();
         return;
     }
     else if (CurrentState == PlayerState.Playing && old_state == GstState.Playing && new_state == GstState.Paused)
     {
         OnStateChanged(PlayerState.Paused);
         return;
     }
     else if (new_state == GstState.Ready && pending_state == GstState.Playing)
     {
         if (ready_timeout == 0)
         {
             ready_timeout = Application.RunTimeout(1000, OnReadyTimeout);
         }
         return;
     }
 }
Пример #2
0
 private void OnStateChange(IntPtr player, GstState old_state, GstState new_state, GstState pending_state)
 {
     if (old_state == GstState.Ready && new_state == GstState.Paused && pending_state == GstState.Playing)
     {
         OnStateChanged(PlayerState.Loaded);
         return;
     }
     else if (old_state == GstState.Paused && new_state == GstState.Playing && pending_state == GstState.VoidPending)
     {
         if (CurrentState == PlayerState.Loaded)
         {
             OnEventChanged(PlayerEvent.StartOfStream);
         }
         OnStateChanged(PlayerState.Playing);
         return;
     }
     else if (CurrentState == PlayerState.Playing && old_state == GstState.Playing && new_state == GstState.Paused)
     {
         OnStateChanged(PlayerState.Paused);
         return;
     }
 }
Пример #3
0
 private void OnStateChange (IntPtr player, GstState old_state, GstState new_state, GstState pending_state)
 {
     // Start by clearing any timeout we might have
     StopIterating ();
     if (CurrentState != PlayerState.Loaded && old_state == GstState.Ready && new_state == GstState.Paused && pending_state == GstState.Playing) {
         if (ready_timeout != 0) {
             Application.IdleTimeoutRemove (ready_timeout);
             ready_timeout = 0;
         }
         OnStateChanged (PlayerState.Loaded);
         return;
     } else if (old_state == GstState.Paused && new_state == GstState.Playing && pending_state == GstState.VoidPending) {
         if (CurrentState == PlayerState.Loaded) {
             OnEventChanged (PlayerEvent.StartOfStream);
         }
         OnStateChanged (PlayerState.Playing);
         // Start iterating only when going to playing
         StartIterating ();
         return;
     } else if (CurrentState == PlayerState.Playing && old_state == GstState.Playing && new_state == GstState.Paused) {
         OnStateChanged (PlayerState.Paused);
         return;
     } else if (new_state == GstState.Ready && pending_state == GstState.Playing) {
         if (ready_timeout == 0) {
             ready_timeout = Application.RunTimeout (1000, OnReadyTimeout);
         }
         return;
     }
 }
Пример #4
0
 public static extern void gst_element_set_state(IntPtr pipeline, GstState gST_STATE_PLAYING);
Пример #5
0
 public static extern GstStateChangeReturn gst_element_set_state(IntPtr pipeline, GstState gST_STATE_PLAYING);