ich versuche gerade mit Python auf dem Raspi 4 ein Programm zu schreiben, das sobald ein USB-Stick eingesteckt wird ausliest, wie der Stick heißt, zu prüfen welche Video/Bild Dateien darauf sind, die Pfade der Dateien dann in einer .txt Datei speichert und dann die Dateien mit dem VLC -Player abspielt. mein erstes Programm, was nur ein Video abspielen sollte hat funktioniert. Stick rein, VLC öffnet sich und das Video läuft.
Jetzt will ich aber noch Bilder dabei haben und das funktioniert nicht. Die Playlist .txt wird zwar erstellt und die Pfade stehe korrekt drin. Der VLC-Player öffnet sich auch, jedoch wird nichts abgespielt.
Main:
Code: Alles auswählen
if __name__ == "__main__":
directory_path = "/media/spinoza"
# Using the DeviceOperations class
device_name = DeviceOperations.get_device_name(directory_path)
if device_name is not None:
print("Device:", device_name)
else:
print("Keine Ausgabe")
file_directory = os.path.join(directory_path, device_name)
playlist_file = os.path.join(file_directory, 'playlist.txt')
#playlist_file = "/media/spinoza/03E3-D170/playlist.txt"
print("Video directory:", file_directory)
Playlist.create(file_directory, playlist_file)
VideoPlayer.play_videos(playlist_file)
Code: Alles auswählen
import subprocess
class DeviceOperations:
@staticmethod
def get_device_name(directory_path):
result = subprocess.run(['ls', directory_path], capture_output=True, text=True)
if result.returncode == 0:
return result.stdout.strip()
else:
print("Fehler beim Ausführen des ls-Befehls")
return None
Code: Alles auswählen
import os
import subprocess
import pygame
import glob
class Playlist:
@staticmethod
def create(file_directory, playlist_file):
media_files = glob.glob(os.path.join(file_directory, '*.*'))
media_files = [file for file in media_files if file.lower().endswith(('.mp4','.avi', '.mkv', '.mov', '.png', '.jpeg'))]
print("Media files found: ", media_files)
with open(playlist_file, 'w') as file:
for media_file in media_files:
file.write(media_file + '\n')
print("Playlist file created: ", os.path.join(os.getcwd(), playlist_file))
Code: Alles auswählen
import os
import glob
import subprocess
import time
from playlist_operations import Playlist
class VideoPlayer:
@staticmethod
def play_videos(playlist_file):
try:
subprocess.run(["vlc", "--version"], check = True)
except subprocess.CalledProcessError:
print("VLC is not installed or cannor be found.")
return
try:
subprocess.run(["vlc", "--fullscreen", "--playlist-enqueue", playlist_file], check = True)
except subprocess.CalledProcessError as e:
print(f"Error launching VLC: {e}")
return
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Viele dank im voraus