Now plays files to default audio and CABLE!
TODO: Show urls in buttons
This commit is contained in:
0
modules/player/__init__.py
Normal file
0
modules/player/__init__.py
Normal file
43
modules/player/player.py
Normal file
43
modules/player/player.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import vlc
|
||||
from gui.gui import Ui_MainWindow
|
||||
|
||||
|
||||
def get_instance() -> vlc.Instance:
|
||||
return vlc.Instance()
|
||||
|
||||
|
||||
def get_player(instance: vlc.Instance) -> vlc.MediaPlayer:
|
||||
return instance.media_player_new()
|
||||
|
||||
|
||||
def get_devices(mediaplayer: vlc.MediaPlayer) -> dict:
|
||||
devices = dict()
|
||||
|
||||
device = mediaplayer.audio_output_device_enum()
|
||||
while device:
|
||||
devices[device.contents.description.decode("utf-8")] = device.contents.device
|
||||
device = device.contents.next
|
||||
|
||||
return devices
|
||||
|
||||
|
||||
class Player(object):
|
||||
def __init__(self):
|
||||
self.instance = get_instance()
|
||||
self.mediaplayer_preview = get_player(self.instance)
|
||||
self.mediaplayer_preview.audio_output_device_set(None, get_devices(self.mediaplayer_preview)['Default'])
|
||||
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 play(self, ui: Ui_MainWindow):
|
||||
self.mediaplayer_preview.play()
|
||||
self.mediaplayer_out.play()
|
||||
|
||||
def get_length(self) -> int:
|
||||
return int(self.mediaplayer_preview.get_length() / 1000)
|
||||
Reference in New Issue
Block a user