检查流是否丢失连接

时间:2018-08-11 16:22:38

标签: python python-2.7 video-streaming

我正在使用一个功能来检查是否失去与流服务器的连接。播放视频流时,我想每1秒钟调用一次self.Reconnect_stream函数,以检查视频流是否停止工作,因此我可以重新连接服务器以播放视频流。

代码如下:

self.stream = list()
self.Reconnect = None

def play(self, item = None, windowed = False):
    print "you are working on play........................."

    bool = True
    url = ''

    if not self.player.isPlayingVideo():
       url = 'http://example.com/stream.ts'
       self.stream.append(url)


    if self.player.isPlayingVideo():
         self.Reconnect = threading.Timer(1, self.Reconnect_stream)
         self.Reconnect.start()



def Reconnect_stream(self):
     print "you are calling Reconnect_stream.........................for player"

     if not self.player.isPlayingVideo():
         if not self.stream == []:
             self.Reconnect.cancel()
             url = ''.join(str(x) for x in self.stream)
             bool = True
             self.player.play(url, windowed = bool)
             xbmc.sleep(2000)
     self.Reconnect = threading.Timer(1, self.Reconnect_stream)
     self.Reconnect.start()

我的代码出现问题,因为当我播放流时,它确实每隔1秒钟调用一次self.Reconnect_stream函数,并且它没有检查我是否失去了与服务器的连接。

我想这不是正确的使用方式:

if self.player.isPlayingVideo():
    self.Reconnect = threading.Timer(1, self.Reconnect_stream)
    self.Reconnect.start()

我认为我应该使用这样的东西:

While True:
    ....check if i have lost connection to the server so reconnect the stream

能否请您举一个例子,说明我如何以正确的方式使用它来每隔1秒自动检查一次流服务器,如果我失去与服务器的连接,则可以重新连接到流以再次播放它?

0 个答案:

没有答案