chromecast.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import pychromecast
  2. import time
  3. class ccast:
  4. def __init__(self,name):
  5. if type(name) == 'list':
  6. if len(name) <= 0:
  7. self.chromecasts, slef.browser = pychromecast.get_chromecasts()
  8. else:
  9. self.chromecasts, self.browser = pychromecast.get_listed_chromecasts(friendly_names=name)
  10. else:
  11. if len(name) >= 0:
  12. self.chromecasts, self.browser = pychromecast.get_chromecasts()
  13. else:
  14. lst = []
  15. lst.append(name)
  16. self.chromecasts, self.browser = pychromecast.get_listed_chromecasts(friendly_names=lst)
  17. def getCasts(self):
  18. return self.chromecasts
  19. def play(self,uri,cast):
  20. #check if mdeium finished ?
  21. cast.wait()
  22. print('ready to cast')
  23. cast.media_controller.play_media(uri, "video/mp4")
  24. player_state = None
  25. t = 30
  26. has_played = False
  27. while True:
  28. if player_state != cast.media_controller.status.player_state:
  29. player_state = cast.media_controller.status.player_state
  30. print("Player state:", player_state)
  31. if player_state == "PLAYING":
  32. has_played = True
  33. if cast.socket_client.is_connected and has_played and player_state != "PLAYING":
  34. has_played = False
  35. cast.media_controller.play_media(uri, "video/mp4")
  36. time.sleep(0.1)
  37. t = t - 0.1
  38. # Shut down discovery
  39. pychromecast.discovery.stop_discovery(browser)