[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.

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

Messagepar ThierryM » 18 Sep 2016 03:33

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   AgrandirRéduire
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
Pièces jointes
Exemple_Jouer_Son_Incorporé.ods
Fichier exemple jouant le son incorporé dans le classeur
(22.96 Kio) Téléchargé 99 fois
LibreOffice Version: 6.0.7.3 version ubuntu / Ubuntu Trusty 18.04 / Pourquoi privilégier les formats de fichiers ouverts ?
ThierryM
Membre cOOnverti
Membre cOOnverti
 
Message(s) : 383
Inscrit le : 26 Nov 2006 12:29
Localisation : Les Corbières

Retour vers Suprême de code

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)