class App(object): CliMode = 0x0001 GuiMode = 0x0010 mode = 0x0000 def __init__(self, player=None): if player is None: locale.setlocale(locale.LC_NUMERIC, 'C') self.player = MpvPlayer() self.player.initialize() else: self.player = player self.playlist = self.player.playlist self.library = Library() self.live_lyric = LiveLyric() self.plugin_mgr = PluginsManager(self) self.version_mgr = VersionManager(self) def initialize(self): self.player.position_changed.connect(self.live_lyric.on_position_changed) self.playlist.song_changed.connect(self.live_lyric.on_song_changed) self.plugin_mgr.scan() loop = asyncio.get_event_loop() loop.call_later(10, partial(loop.create_task, self.version_mgr.check_release()))
def main(): parser = setup_argparse() args = parser.parse_args() debug = args.debug mpv_audio_device = args.mpv_audio_device setup_logger(debug=debug) player = MpvPlayer(audio_device=bytes(mpv_audio_device, 'utf-8')) player.initialize() library = Library() library.register(lp) library.register(np) library.register(qp) pubsub_gateway, pubsub_server = run_pubsub() app = App(player, library, pubsub_gateway) live_lyric = app.live_lyric event_loop = asyncio.get_event_loop() event_loop.create_task(run_server(app, live_lyric)) try: event_loop.run_forever() logger.info('Event loop stopped.') except KeyboardInterrupt: # NOTE: gracefully shutdown? pass finally: pubsub_server.close() event_loop.close()
class App(object): def __init__(self): self.player = MpvPlayer() self.playlist = self.player.playlist self.source = Source() def initialize(self): self.player.initialize() self.source.register(local_provider) self.source.register(netease_provider) def list_providers(self): for provider in self.source.providers: yield provider def get_provider(self, name): for provider in self.source.providers: if provider.identifier == name: return provider return None def play(self, song_identifier): song = self.source.get_song(song_identifier) if song is not None: self.player.play_song(song)
def __init__(self): locale.setlocale(locale.LC_NUMERIC, 'C') self.player = MpvPlayer() self.player.initialize() self.playlist = self.player.playlist self.library = Library() self.live_lyric = LiveLyric() self.plugin_mgr = PluginsManager(self) self.version_mgr = VersionManager(self)
def setUp(self): self.player = MpvPlayer() self.player.initialize()
class TestPlayer(TestCase): def setUp(self): self.player = MpvPlayer() self.player.initialize() def tearDown(self): self.player.shutdown() @skipIf(os.environ.get('TEST_ENV', 'travis'), '') def test_play(self): self.player.play(MP3_URL) self.player.stop() @skipIf(os.environ.get('TEST_ENV', 'travis'), '') def test_duration(self): # This may failed? self.player.play(MP3_URL) time.sleep(0.1) self.assertIsNotNone(self.player.duration) @skipIf(os.environ.get('TEST_ENV', 'travis'), '') def test_seek(self): self.player.play(MP3_URL) time.sleep(0.1) self.player.position = 100
def __init__(self): self.player = MpvPlayer() self.playlist = self.player.playlist self.source = Source()