Now pausing, dragging slider works!
Known issue: cutting end of sound. I have no idea how to fix it
This commit is contained in:
@@ -25,6 +25,7 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
|||||||
GlobalBlur(MainWindow.winId(), acrylic=True)
|
GlobalBlur(MainWindow.winId(), acrylic=True)
|
||||||
|
|
||||||
ui.timer = QtCore.QTimer(MainWindow)
|
ui.timer = QtCore.QTimer(MainWindow)
|
||||||
|
ui.timer.start(100)
|
||||||
|
|
||||||
p = Player()
|
p = Player()
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from gui.gui import Ui_MainWindow
|
from gui.gui import Ui_MainWindow
|
||||||
|
from PyQt5 import QtGui
|
||||||
from PyQt5.QtWidgets import QMainWindow
|
from PyQt5.QtWidgets import QMainWindow
|
||||||
from modules.player.player import Player
|
from modules.player.player import Player
|
||||||
|
|
||||||
@@ -11,3 +12,13 @@ def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player):
|
|||||||
:param MainWindow:
|
:param MainWindow:
|
||||||
:return:
|
: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))
|
||||||
|
|||||||
@@ -29,15 +29,47 @@ class Player(object):
|
|||||||
self.mediaplayer_out = get_player(self.instance)
|
self.mediaplayer_out = get_player(self.instance)
|
||||||
self.mediaplayer_out.audio_output_device_set(None, get_devices(
|
self.mediaplayer_out.audio_output_device_set(None, get_devices(
|
||||||
self.mediaplayer_out)['CABLE Input (VB-Audio Virtual Cable)'])
|
self.mediaplayer_out)['CABLE Input (VB-Audio Virtual Cable)'])
|
||||||
self.is_paused = False
|
|
||||||
|
|
||||||
def set_media(self, media: str) -> None:
|
def set_media(self, media: str) -> None:
|
||||||
self.mediaplayer_preview.set_media(self.instance.media_new(media))
|
self.mediaplayer_preview.set_media(self.instance.media_new(media))
|
||||||
self.mediaplayer_out.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):
|
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_preview.play()
|
||||||
self.mediaplayer_out.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:
|
def get_length(self) -> int:
|
||||||
return int(self.mediaplayer_preview.get_length() / 1000)
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user