Næste version

This commit is contained in:
2026-04-12 10:25:41 +02:00
parent b678787236
commit 57f3c913b4
18 changed files with 2690 additions and 458 deletions

View File

@@ -63,7 +63,9 @@ class Player(QObject):
self._demo_mode = False
if VLC_AVAILABLE and self._media_player:
media = self._instance.media_new(path)
# Konverter GVFS SMB-sti til SMB URL som VLC kan tilgå direkte
vlc_path = self._resolve_path(path)
media = self._instance.media_new(vlc_path)
self._media_player.set_media(media)
self._media_player.audio_set_volume(self._volume)
@@ -71,6 +73,33 @@ class Player(QObject):
self.time_changed.emit(0, self._duration)
self.state_changed.emit("stopped")
def _resolve_path(self, path: str) -> str:
"""Konverter platform-specifikke netværksstier til URL'er VLC kan bruge."""
import re, sys
# Linux GVFS SMB: /run/user/1000/gvfs/smb-share:server=X,share=Y/sti/fil.mp3
m = re.match(r".*/gvfs/smb-share:server=([^,]+),share=([^/]+)(/.+)$", path)
if m:
server, share, rest = m.group(1), m.group(2), m.group(3)
return f"smb://{server}/{share}{rest}"
# Windows UNC: \\server\share\sti\fil.mp3
if path.startswith("\\\\"):
# \\server\share\rest → smb://server/share/rest
parts = path.replace("\\", "/").lstrip("/").split("/", 2)
if len(parts) >= 2:
server = parts[0]
share = parts[1]
rest = "/" + parts[2] if len(parts) > 2 else ""
return f"smb://{server}/{share}{rest}"
# Lokale stier og drevbogstaver (C:\...) — VLC håndterer dem fint
return path
self.position_changed.emit(0.0)
self.time_changed.emit(0, self._duration)
self.state_changed.emit("stopped")
# ── Transport ─────────────────────────────────────────────────────────────
def play(self):