Python mit Gstreamer - warten auf EOF signal
Verfasst: Dienstag 5. April 2011, 09:18
Hallo zusammen
Ich habe einen einfachen mp3 Player gebaut mit Python und Gstreamer.
Nun benötige ich ein Signal, wenn der Dateistream fertig ist.
Gemäss Beispielen sollte unterstehender Code funktionieren, aber ich kriege nie eine Messsage
Hat irgend jemand einen Tip dazu?
Ich habe einen einfachen mp3 Player gebaut mit Python und Gstreamer.
Nun benötige ich ein Signal, wenn der Dateistream fertig ist.
Gemäss Beispielen sollte unterstehender Code funktionieren, aber ich kriege nie eine Messsage
Hat irgend jemand einen Tip dazu?
Code: Alles auswählen
import pygst
pygst.require("0.10")
import gst
from time import *
file = "~/aaa.mp3"
def on_message(bus, message):
print "message"
t = message.type
if t == gst.MESSAGE_EOS:
gstream_player.set_state(gst.STATE_NULL)
print "MESSAGE_EOS"
elif t == gst.MESSAGE_ERROR:
gstream_player.set_state(gst.STATE_NULL)
print "MESSAGE_ERROR"
err, debug = message.parse_error()
logger.error("ERROR: %s, %s" % (err, debug) )
gstream_player = gst.element_factory_make("playbin2", "player")
fakesink = gst.element_factory_make("fakesink", "fakesink")
gstream_player.set_property("video-sink", fakesink)
bus = gstream_player.get_bus()
bus.add_signal_watch()
bus.connect("message", on_message)
#bus.connect("message::eos", on_message)
gstream_player.set_property("uri", "file://" + file)
gstream_player.set_state(gst.STATE_PLAYING)
i=0
while(1):
sleep(1)
i=i+1
print i