gst-launch-0.10 playbin uri=file:///path/to/视频文件
在Python里播放
-
self. player = gst. element_factory_make ( "playbin", "player" )
-
bus = self. player. get_bus ( )
-
bus. add_signal_watch ( )
-
bus. enable_sync_message_emission ( )
-
bus. connect ( ‘message’, self. on_message )
-
bus. connect ( ’sync-message::element’, self. on_sync_message )
-
self. player. set_property ( ‘uri’, "file://" + filepath )
-
self. player. set_state (gst. STATE_PLAYING )
-
-
def on_message ( self, bus, message ):
-
t = message. type
-
if t == gst. MESSAGE_EOS:
-
self. player. set_state (gst. STATE_NULL )
-
self. button. set_label ( "Start" )
-
else if t == gst. MESSAGE_ERROR:
-
self. player. set_state (gst. STATE_NULL )
-
self. button. set_label ( "Start" ) def on_sync_message ( self, bus, message ):
-
if message. structure is None:
-
return message_name = message. structure. get_name ( )
-
if message_name == ‘prepare-xwindow-id’:
-
imagesink = message. src
-
imagesink. set_property ( ‘force-aspect-ratio’, True )
-
imagesink. set_xwindow_id ( self. movie_window. window. xid )