[Calc] Jouer un fichier son incorporé dans une feuille

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur : Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
ThierryM
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 437
Inscription : 26 nov. 2006 11:29
Localisation : Les Corbières

[Calc] Jouer un fichier son incorporé dans une feuille

Message par ThierryM »

Salut à tous,
Voici un code pour Calc mais facilement transposable pour Writer, Draw ou Impress (variante pour la propriété "Drawpage") permettant de jouer un fichier son incorporé. L'avantage est que le classeur Calc est autonome : pas besoin de lui adjoindre le fichier son à jouer.
Remarque : j'ai récupéré une partir du code ici : https://forum.openoffice.org/en/forum/v ... 20&t=57699 (merci à leurs auteurs).

Code : Tout sélectionner

REM  *****  BASIC  *****

Sub SonErreur
 'Macro qui joue le fichier son incorporé dans la feuille "Son"
	maFeuille=thisComponent.Sheets.getByName("Son")
	maPage=maFeuille.DrawPage(0)
	'urlFichierSonIncorpore=maPage(0).MediaURL
	urlFichierSonIncorpore=maPage(0).PrivateTempFileURL
	PlaySound(urlFichierSonIncorpore)
End Sub


Sub PlaySound(i_soundpath as string)
 'Macro qui permet de jouer un fichier son
 ' Source : https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=57699 
     Dim oPlayer1 as object, sUrlSound as string, oSounMgr as object
     
     If Not isnull(oSounMgr) Then
         S_Start_New
         Exit Sub
     EndIf
     
     sUrlSound = ConvertToUrl(i_soundpath)

     If not fileexists(sUrlSound) Then       
         msgbox sUrlSound & " introuvable",16
     else
        If GetGuiType() = 1 Then
            oSounMgr = CreateUnoService("com.sun.star.media.Manager_DirectX")
        Else
            oSounMgr = CreateUnoService("com.sun.star.comp.media.Manager_GStreamer")
        End If
        If IsNull(oSounMgr) Then
           msgbox "Sound Mgr not set",16
        else
            oPlayer1 = oSounMgr.createPlayer(sUrlSound)
            oPlayer1.setMediaTime(0.0)
            oPlayer1.setVolumeDB(-10)
'            msgbox oPlayer1.getduration()
            oPlayer1.setPlayBackLoop( 0 )
            oPlayer1.start(0)
           while oPlayer1.isplaying()
              doevents
           wend
           oPlayer1 = nothing
           oSounMgr = nothing
           msgbox "Erreur : saisie non autorisée !",16
        End If
     End If
End Sub
En espérant que ça serve, cordialement,

Thierry
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice Version: 7.6.2 / Linux Mint Mate Edition 21.2 / Pourquoi privilégier les formats de fichiers ouverts ?