diff --git a/gui/modules/initialize/setup_ui.py b/gui/modules/initialize/setup_ui.py index 23945e5..3f8ae66 100644 --- a/gui/modules/initialize/setup_ui.py +++ b/gui/modules/initialize/setup_ui.py @@ -25,6 +25,7 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow): GlobalBlur(MainWindow.winId(), acrylic=True) ui.timer = QtCore.QTimer(MainWindow) + ui.timer.start(100) p = Player() diff --git a/gui/modules/player/handlers.py b/gui/modules/player/handlers.py index fde9ec8..9eac0fa 100644 --- a/gui/modules/player/handlers.py +++ b/gui/modules/player/handlers.py @@ -1,4 +1,5 @@ from gui.gui import Ui_MainWindow +from PyQt5 import QtGui from PyQt5.QtWidgets import QMainWindow from modules.player.player import Player @@ -11,3 +12,13 @@ def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player): :param MainWindow: :return: """ + + play_icon = QtGui.QIcon() + play_icon.addPixmap(QtGui.QPixmap(":/img/img/play.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + + ui.volume_box.valueChanged.connect(lambda: p.set_volume(ui.volume_box.value())) + ui.play_pause_button.clicked.connect(lambda: p.playpause(ui)) + ui.timer.timeout.connect(lambda: (ui.player_time_slider.setValue(p.get_position()), + ui.play_pause_button.setIcon(play_icon) if not p.mediaplayer_out.is_playing() + else None)) + ui.player_time_slider.sliderPressed.connect(lambda: p.set_position(ui.player_time_slider.value() / 100.0)) diff --git a/modules/player/player.py b/modules/player/player.py index 27820c3..eefb1e5 100644 --- a/modules/player/player.py +++ b/modules/player/player.py @@ -29,15 +29,47 @@ class Player(object): self.mediaplayer_out = get_player(self.instance) self.mediaplayer_out.audio_output_device_set(None, get_devices( self.mediaplayer_out)['CABLE Input (VB-Audio Virtual Cable)']) - self.is_paused = False def set_media(self, media: str) -> None: self.mediaplayer_preview.set_media(self.instance.media_new(media)) self.mediaplayer_out.set_media(self.instance.media_new(media)) + def set_volume(self, volume: int): + self.mediaplayer_preview.audio_set_volume(volume) + self.mediaplayer_out.audio_set_volume(volume) + def play(self, ui: Ui_MainWindow): + from PyQt5 import QtGui + pause_icon = QtGui.QIcon() + pause_icon.addPixmap(QtGui.QPixmap(":/img/img/pause.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.mediaplayer_preview.play() self.mediaplayer_out.play() + self.set_volume(ui.volume_box.value()) + ui.play_pause_button.setIcon(pause_icon) + + def playpause(self, ui: Ui_MainWindow): + from PyQt5 import QtGui + play_icon = QtGui.QIcon() + play_icon.addPixmap(QtGui.QPixmap(":/img/img/play.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + pause_icon = QtGui.QIcon() + pause_icon.addPixmap(QtGui.QPixmap(":/img/img/pause.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + + if self.mediaplayer_out.is_playing(): + self.mediaplayer_preview.pause() + self.mediaplayer_out.pause() + ui.play_pause_button.setIcon(play_icon) + else: + self.mediaplayer_preview.play() + self.mediaplayer_out.play() + ui.play_pause_button.setIcon(pause_icon) def get_length(self) -> int: return int(self.mediaplayer_preview.get_length() / 1000) + + def get_position(self) -> int: + return int(self.mediaplayer_preview.get_position() * 100) + + def set_position(self, pos: float): + self.mediaplayer_preview.set_position(pos) + self.mediaplayer_out.set_position(pos)