1 from enigma import eServiceReference
6 def __init__(self,session, args = 0):
7 print " init StreamPlayer"
9 self.oldService = self.session.nav.getCurrentlyPlayingServiceReference()
10 self.session.nav.event.append(self.__event)
12 def __event(self, ev):
15 def play(self,stream):
16 print " start streaming %s" %stream.getURL()
17 if self.is_playing is True:
21 if stream.getURL().startswith("/") is not True:
22 print "playing remote stream",stream.getURL()
23 self.session.nav.stopService()
24 # sref = eServiceReference("4097:0:0:0:0:0:0:0:0:0:%s"%stream.getURL().replace(":",":"))
25 # self.session.nav.playService(sref)
26 self.targetfile = "/tmp/streamtarget."+stream.getType().lower()
27 os.system("mknod %s p" %self.targetfile)
28 os.system("wget %s -O- > %s&" %(stream.getURL(),self.targetfile))
29 self.session.nav.playService(eServiceReference("4097:0:0:0:0:0:0:0:0:0:%s"%self.targetfile))
31 print "playing local stream",stream.getURL()
32 esref = eServiceReference("4097:0:0:0:0:0:0:0:0:0:%s"%stream.getURL())
33 self.session.nav.playService(esref)
34 self.is_playing = True
36 def stop(self,text=""):
37 if self.is_playing is True:
38 print " stop streaming",text
41 self.session.nav.stopService()
42 os.system("killall -9 wget")
43 os.system("rm %s" %self.targetfile)
44 self.session.nav.playService(self.oldService)
45 self.is_playing = False