[gelöst] MP3 abspielen nach TextToSpeach Ansage

Begonnen von bintux, 12 Oktober 2016, 19:31:30

Vorheriges Thema - Nächstes Thema

bintux

Hallo zusammen,
Ich habe mir nach dem Vorbild des Wettervorlesentutorials http://www.fhemwiki.de/wiki/Wetter_vorlesen_lassen eine kurze Ansage zusammengebaut. Zusätzlich habe ich ein Pythonscript, welches mir immer die aktuellen DLF Nachrichten runter zieht, die ich dann via Mplayer von FHEM abspielen lasse.

sub playSound() {
my $dateiname= "/opt/sound/Nachrichten_deutschlandfunk.mp3";
        system "mplayer  $dateiname";
}


Jetzt habe ich beide Funktionen als Event beim Druck eines DashButtons eingerichtet. Die Reihenfolge sollte erst Wetter, dann Nachrichten sein,  aber ich bekomme immer erst die Nachrichten abgespielt. Woran liegt das?

define DASH_DERWENT_ACTION notify DASH_DERWENT:present { speakWetterVorhersage(0);; playSound() }

Liegt das daran, das Perl die beiden Funktionen parallel abarbeitet und das lokale MP3 einfach schneller ans Audio Device geschickt werden kann?
Danke für eure Hilfe,
Gruß Eike

Ellert

#1
Versuch mal DOIF, damit starten die Funktionen nacheinander.

(["DASH_DERWENT:present"])
   ({ speakWetterVorhersage(0)})
DOELSEIF (![<Name des Text2Speech-Gerätes>:playing])
   ({playSound()})


Du kannst die mp3-Datei auch direkt über Text2Speech abspielen mit
set <Name des Text2Speech-Gerätes> tts :Nachrichten_deutschlandfunk.mp3:

Die MP3-Dateien müssen unterhalb des Verzeichnisses TTS_FileTemplateDir gespeichert sein.

bintux

Besten Dank Ellert. DOIF hat das gewünschte Ergebnis gebracht.
Gruß und noch einen schönen Abend.
Eike