diff --git a/requirements.txt b/requirements.txt index 11bbbbe..d0f45a0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,10 +13,10 @@ pycairo==1.26.0 Pygments==2.18.0 PyGObject==3.48.2 pyradios==2.1.0 -python-mpv==1.0.6 python-vlc==3.0.20123 setuptools==70.0.0 sniffio==1.3.1 streamscrobbler3==0.0.4 tinydb==4.8.0 wcwidth==0.2.13 +mpv==1.0.7 diff --git a/xradios/core/player.py b/xradios/core/player.py index ac3da61..43b8122 100644 --- a/xradios/core/player.py +++ b/xradios/core/player.py @@ -11,7 +11,6 @@ class PlayerBase(ABC): - state = False @abstractmethod @@ -35,9 +34,24 @@ def playing(self): return self.state -class MPVPlayer(PlayerBase): +def log_handler(level, prefix, message): + func = getattr(log, level.lower(), log.info) # getattr default -> log.info + func(f"{prefix}: {message}") - player = MPV() + +class MPVPlayer(PlayerBase): + extra_mpv_opts = { + "cache": True, + "cache_secs": 10, + } + + player = MPV( + log_handler=log_handler, + loglevel=logging.getLevelName(log.root.level).lower(), + **extra_mpv_opts, + ) + log.debug(f"mpv --cache ---> {player['cache']}") + log.debug(f"mpv --cache-secs ---> {player.cache_secs}") def play(self, stationuuid): url = self._click_counter(stationuuid)