Tprocess - Rückmeldung unterdrücken für osxplayer

Rund um die LCL und andere Komponenten
Antworten
Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Tprocess - Rückmeldung unterdrücken für osxplayer

Beitrag von Timm Thaler »

Ich möchte auf dem Raspberry bei bestimmten Ereignissen kurze Soundfiles (mp3) abspielen. Dazu starte ich den Omxplayer mit Tprocess. Funktioniert soweit auch.

Code: Alles auswählen

procedure PlaySound(sound : string);
var
  phnd : TProcess;
begin
  if FileExists(sound) then
  begin
    phnd := TProcess.Create(nil);
    phnd.CommandLine := 'omxplayer --vol 600 -o local ' + sound;
    phnd.Options := [];    // keine
    phnd.Execute;    // Player starten
    phnd.Free;    // wieder freigeben, Sound wird trotzdem komplett abgespielt
  end;
end;   


Starte ich das Programm allerdings im LXTerminal, bekomme ich immer die Rückmeldungen des Omxplayers ins Terminal. Das möchte ich vermeiden, da das Programm später im Hintergrund laufen soll und meines Wissens nach dann Ausgaben auf der SD-Karte gespeichert werden, was nicht sein soll.

Code: Alles auswählen

Audio codec mp3 channels 2 samplerate 44100 bitspersample 16
                                                            Subtitle count: 0, state: off, index: 1, delay: 0
       have a nice day ;)


Gibt es einen Weg, diese Ausgabe zu unterdrücken? "--no-osd" bewirkt hier nichts, weil das nur das OSD auf bei Videoausgabe betrifft. Umleiten nach "dev/null" geht ja bei TProcess auch nicht.

Randbedingungen sind:
- Es soll der osxplayer sein, weil ich bei dem einfach auf "local" (an der analogen KH-Buchse hängt die "Hausklingel" dran) Sound ausgeben kann, während der Standardsound auf "hdmi" (die Lautsprecher zum Monitor für Internetradio...) verbleiben kann.
- Das Programm muss während der Soundausgabe unbedingt weiterlaufen, es wird also nur der omxplayer gestartet und sofort im Hauptprogramm weitergemacht.
- Fehlermeldungen vom omsplayer können ignoriert werden. Ist der Sound nicht abspielbar oder die Datei nicht vorhanden ist das halt Pech.

Antworten