- def update_slider(self):
- if not self.is_playing:
- return False # cancel timeout
-
- try:
- nanosecs, format = self.playbin.query_position(gst.FORMAT_TIME)
- duration_nanosecs, format = self.playbin.query_duration(gst.FORMAT_TIME)
-
- # block seek handler so we don't seek when we set_value()
- self.seeker.handler_block_by_func(self.on_seeker_change)
-
- self.seeker.set_range(0, float(duration_nanosecs) / gst.SECOND)
- self.seeker.set_value(float(nanosecs) / gst.SECOND)
-
- self.seeker.handler_unblock_by_func(self.on_seeker_change)
-
- except gst.QueryError:
- # pipeline must not be ready and does not know position
- pass
-
- return True # continue calling every 30 milliseconds
-
-
- def on_seeker_change(self, slider, a, b):
- print 'on_seeker_change'
- seek_time_secs = slider.get_value()
- self.playbin.seek_simple(gst.FORMAT_TIME, gst.SEEK_FLAG_FLUSH | gst.SEEK_FLAG_KEY_UNIT, seek_time_secs * gst.SECOND)
-
-
-