8bafc9df42c90ad792b58e687fa0b37feb9a20f9
[vuplus_dvbapp-plugin] / netcaster / src / bin / StreamPlayer.py
1 from enigma import eServiceReference
2
3 class StreamPlayer:
4     is_playing = False
5     
6     def __init__(self,session, args = 0):
7         print " init StreamPlayer"
8         self.session = session
9         self.oldService = self.session.nav.getCurrentlyPlayingServiceReference()
10         self.session.nav.event.append(self.__event)
11     
12     def __event(self, ev):
13         print "EVENT ==>",ev
14
15     def play(self,stream):
16         print " start streaming %s" %stream.getURL()
17         if self.is_playing is True:
18             self.stop()
19             self.play(stream)
20         else:
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             else:
27                 print "playing lokal stream",stream.getURL()
28                 esref = eServiceReference("4097:0:0:0:0:0:0:0:0:0:%s"%stream.getURL())
29                 self.session.nav.playService(esref)
30             self.is_playing = True
31             
32     def stop(self,text=""):
33         if self.is_playing is True:
34             print " stop streaming",text
35             try:
36                 
37                 self.session.nav.stopService()
38                 self.session.nav.playService(self.oldService)
39                 self.is_playing = False
40             except TypeError,e:
41                 print " ERROR ",e
42                 self.exit()
43         else:
44             pass
45     def exit(self):
46         self.stop()
47