ich habe ein Rpi 3B mit BASTER LITE und USB Soundbar.
Jetzt möchte ich nach dem Start Warten bis die USB Sound Bar da ist und dann ein Sound abspielen.
meine Crontab:
Code: Alles auswählen
@reboot python3 /home/rfid/python/Control_Vol_by_AC511.py &
Code: Alles auswählen
import evdev #import InputDevice, categorize, ecodes
import os
import subprocess
# importing vlc module
import vlc
# importing time module
import time
def play_start():
# creating vlc media player object
player = vlc.MediaPlayer("/home/rfid/music/Startton.mp3")
player.audio_set_volume(100)
print("Akutelles VOl-Value :" +str(player.audio_get_volume()))
player.play()
time.sleep(4)
player.stop()
def main():
# bei def Volume starten
command = ["amixer", "sset", "Master", "{}%".format(12)]
subprocess.Popen(command)
found_Bar =False
while not found_Bar:
try:
# Soundbar suchen
devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
for device in devices:
if device.name =="Dell Dell AC511 USB SoundBar":
dev= evdev.InputDevice(device.path)
found_Bar = True
print(device.path, device.name, device.phys)
except:
print ("Event Code Suchcode has error")
time.sleep(2)
play_start()
print(dev)
dev.grab()
for event in dev.read_loop():
print(event.code)
if __name__ == "__main__":
try:
main()
finally:
command = ["amixer", "sset", "Master", "{}%".format(0)]
subprocess.Popen(command)
Der Code scheint zu laufen, denn wenn ich ihn in der Console starte Kommt der Fehler das " dev.grab()" bereits Busy ist.
Habt Ihr noch einen Tipp für mich? Ist das vll. ein User Context Thema des VLCs?