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