Wav Datei mit Makro abspielen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
Krangel
**
Beiträge: 35
Registriert: Di, 22.04.2014 12:23
Wohnort: 3. Planet

Wav Datei mit Makro abspielen

Beitrag von Krangel »

Hi,
wie kann man in ooCalc mit einem Makro eine wav Datei abspielen lassen?

Grüße
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wav Datei mit Makro abspielen

Beitrag von F3K Total »

Schau mal hier

Gruß R
Benutzeravatar
Krangel
**
Beiträge: 35
Registriert: Di, 22.04.2014 12:23
Wohnort: 3. Planet

Re: Wav Datei mit Makro abspielen

Beitrag von Krangel »

Moin,
Sorry, aber ich weiß aber nicht wie ich ohne die Abfrage der Zellen das Makro starten kann.
Die Datei "Sound_Template.ods" funktioniert sehr gut, habe aber keinen Plan wie der Variablen sSound1 die Sounddatei zugewiesen wird.
Noch ein Problem ist, dass die Sounddatei im Temlate-Verzeichnis stehen muss. Da ich die Calc-Datei weitergeben will, wäre es praktisch wenn die .wav-Datei im selben Verzeichnis liegt wie die .ods-Datei.

Grüße
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wav Datei mit Makro abspielen

Beitrag von F3K Total »

Hi, anbei ein Beispiel, mit .mp3-Datei, .wav geht geanuso, das die Sounddatei aus dem Ordner der Calcdatei abspielt.

Code: Alles auswählen

global oPlayer1
global bInit

Sub S_InitSounds
     if bInit then
         S_Start_New
         exit sub
     endif
     bInit = true 'Setzt nach dem 
     sUrlSound = F_get_Sound_URL("MySound.mp3")
     dim oPlayer as Object
     If GetGuiType() = 1 Then
         oSounMgr = CreateUnoService("com.sun.star.media.Manager_DirectX")
     Else
         oSounMgr = CreateUnoService("com.sun.star.media.Manager_GStreamer")
     End If
     If NOT IsNull(oSounMgr) Then
        If fileexists(sUrlSound) Then        
            oPlayer1 = oSounMgr.createPlayer(sUrlSound)
            oPlayer1.setPlaybackLoop(False)
            oPlayer1.setMediaTime(0.0)
            oPlayer1.start()
            bInit = true 'nach dem ersten Abspielen true -> beim den nächsten Durchlauf wird kein neuer Player initialisiert, sondern S_Start_New aufgerufen.
        End If
     End If
End Sub

function F_get_Sound_URL(sSoundname)
    sFolderUrl = Replace(ThisComponent.URL, ThisComponent.Title,"")'Bestimmung des aktuellen Verzeichnisses
    F_get_Sound_URL = sFolderUrl & sSoundname
end function


sub S_Start_New
    oPlayer1.setMediaTime(0.0)
    oPlayer1.start()
end sub
HTH R
Dateianhänge
Calc_Sound.zip
entpacken
(107.75 KiB) 128-mal heruntergeladen
Benutzeravatar
Krangel
**
Beiträge: 35
Registriert: Di, 22.04.2014 12:23
Wohnort: 3. Planet

Re: Wav Datei mit Makro abspielen

Beitrag von Krangel »

Hi Meister F3K Total,

vielen Dank für die Sonntagsarbeit, funktioniert genau wie gewünscht.

Grüße
Benutzeravatar
Krangel
**
Beiträge: 35
Registriert: Di, 22.04.2014 12:23
Wohnort: 3. Planet

Re: Wav Datei mit Makro abspielen

Beitrag von Krangel »

Hi,
ein Bug noch entdeckt.
blinit wird vor der der Prüfung ob die Sounddatei existiert auf true gesetzt, was dazu führt, dass bei Nichtexistenz nach dem zweiten Aufruf S_Start_New eine Fehlermeldung produziert.

Code: Alles auswählen

Sub S_InitSounds
     if bInit then
         S_Start_New
         exit sub
     endif
    rem ----> bInit = true 'Setzt nach dem 
     sUrlSound = F_get_Sound_URL("7.wav")
     dim oPlayer as Object
     If GetGuiType() = 1 Then
         oSounMgr = CreateUnoService("com.sun.star.media.Manager_DirectX")
     Else
         oSounMgr = CreateUnoService("com.sun.star.media.Manager_GStreamer")
     End If
     If NOT IsNull(oSounMgr) Then
        If fileexists(sUrlSound) Then        
            oPlayer1 = oSounMgr.createPlayer(sUrlSound)
            oPlayer1.setPlaybackLoop(False)
            oPlayer1.setMediaTime(0.0)
            oPlayer1.start()
            bInit = true 'nach dem ersten Abspielen true -> beim den nächsten Durchlauf wird kein neuer Player initialisiert, sondern S_Start_New aufgerufen.
        End If
     End If
End Sub
Grüße Krangel
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wav Datei mit Makro abspielen

Beitrag von F3K Total »

Jo,
hatte ich bereits nach unten geschoben, nach das Fileexists, und kommentiert, dann vergessen oben zu löschen.
Schaffst Du, oder? :wink:
Gruß R
Antworten