Kein Sound über Python

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo Zusammen,


    habe ein kleines Problem mit der Soundaugabe.

    Bin da mit der Programmierung noch eher der Anfänger. Arbeite eher mit IOBroker.

    Ich wollte gerne für mein anstehendes Oktoberfest einen extern Button an den PI anschliessen.

    Die Anleitung habe ich mir hier kopiert (

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.
    )

    Zumindest der Probetext funktioniert über den Digital Eingang. Aber die Wav Datei spielt er nicht ab bzw. es kommt nix aus dem Klinkenstecker.

    Über den VLC Player klappt der Sound. Gibt es da noch irgendwelche Einstellungen, die ich übersehen habe?


    Hier mal noch das Script:


    from gpiozero import Button

    import pygame


    pygame.init()


    btn = Button(17)


    beat1 = pygame.mixer.Sound('/home/pi/mu_code/music/Prosit.wav')


    def hello():

    print("Test")

    beat1.play()


    btn.when_pressed = hello


    Gruß Christian

  • Servus Euromaster82 , willkommen im Forum!


    Das Pythonskript kann so nicht funktionieren. Es fehlen die Einrückungen des Codes in der Funktion def hello():.

    Bitte zukünftig Code immer in einen Codeblock einfügen. Sonst löscht die Forensoftware vermeintlich unnütze Leerzeichen.


    Was mir sonst noch spontan einfällt:

    * Audioeinstellungen in der /boot/config.txt

    * Probehalber mal mit einer MP3-Datei anstelle von WAV testen.

  • Hi schlizbäda ,


    ich wollte auch gerade antworten und bin mir zu 99% sicher, dass das Problem PulseAudio, bzw. die Konfiguration von Alsa ist.


    Wenn man jetzt noch wüsste ob das ein OS mit Desktop oder ohne ist und wie oder wo dieses Skript gestartet wird, dann könnte man genaueres sagen.


    //Edit


    Ups, fast übersehen... Willkommen im Forum! Euromaster82 !

  • ja, diese unsägliche Zweigleisigkeit ALSA bei Raspbian Lite und PulseAudio bei Raspbian Desktop :baeh2:

    Genau das meinte ich mit meinem Hinweis auf /boot/config.txt. Ich war aber tippfaul, da ich das Handy für obigen Beitrag verwendete :stumm:


    Was noch interessant wäre, welche der vier(?) möglichen Audioausgaben auf dem RPi verwendest Du, Euromaster82 ?

  • Hallo Zusammen :)


    danke erstmal für die Antworten. Die Tage doch etwas viel zu tun gehabt :)

    Ich benutze aktuell nur den Klinkenstecker als Ausgabe. Habe da mein Kopfhörer dran gehabt, und wie gesagt, mit den VLC Player kommt Ton raus.

    Ich mache einfach eine RDP Verbindung zu dem PI. Nutze darauf die Desktop Oberfläche.


    In der config.txt Datei steht

    # Enable audio (loads snd_bcm2835)

    dtparam=audio=on


    In dem VLC Player selber ist auch die ALSA-Audioausgabe eingestellt als bcm2835 Headphones.


    Falls es noch eine Rolle spielt:

    Wenn ich in dem Launch Mixer von Pulse Audio auf bcm2835 umstelle, übernimmt er es irgendwie nicht. Wenn ich den Launch Mixer wieder öffne, steht wieder Pulse Audio.


    Die Software "mu" starte ich einfach und starte das Programm händisch.


    Falls alle stricke reisen, kann ich auch noch mal Screenshots mit bei packen.


    Gruß Christian

  • Erstell mal die Datei /etc/asound.conf, falls nicht vorhanden mit folgendem Inhalt:


    card 1 könnte bei Dir ggf. auch card 0 sein. (Das steht übrigens zwei mal in der Datei)


    Falls bei Dir diese Datei existieren sollte, dann zeig mal bitte den Inhalt und die Ausgabe von aplay -l.

  • Hi,

    jaja, die Python :=)


    So, ich habe jetzt mal deine Datei angelegt, da sie nicht vorhanden war. Was sagt denn das Card 0 bzw. 1 aus?

    Die Ausgabe von aplay -1 ergab folgendes:


    Gruß Christian

  • Was sagt denn das Card 0 bzw. 1 aus?

    Im Normalfall wird HDMI als Soundausgabe auch noch angezeigt und dann sind es mehrere Karten, aber egal.

    Quote

    Karte 0: Headphones

    Beantwortet Deine Frage glaube ich schon, also sollte bei Dir card 0 in der Datei stehen.


    //Edit


    Nur um das etwas deutlicher zu machen... Auf meinem Test-RPi sieht das z.B. so aus:

    Da ist die Ausgabe HDMI 0 und Klinke 1. ;)

  • Hast Du Lautstärke in pygame auch mal aufgedreht?


    Um Deinen Code gleich mal zu verwenden... Siehe Zeile 12!

  • Klappt das denn bei euch zum Test?

    Gerade mal getestet und funktioniert mit einer kleinen Anpassung. ABER ich bin doof, weil ich daran nicht gleich gedacht hatte! :dau1:


    Weißt Du was da noch fehlt? Das Skript rennt einfach durch und beendet sich. Also fehlt da noch etwas um das zu verhindern:

    Siehe die erste und die letzte Zeile! ;)