[Basic] Jouer un son de Gallery (wav, mp3)

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.
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

[Basic] Jouer un son de Gallery (wav, mp3)

Message par Jurassic Pork »

Hello,
n'ayant pas trouvé un code qui joue un son sur les 3 principaux O.S (Windows, unix, macos) en utilisant les services media de O.O L.O, je vous propose un module son qui contient deux procédures :
Une qui permet de jouer un son ou une musique à partir d'un fichier audio.

Code : Tout sélectionner

JouerSon(LeSon As String)
exemple d'utilisation : JouerSon("D:\Temp\MonSon.mp3")
Une qui permet de jouer un son qui se trouve dans la galerie sons de O.O, L.O (ex : train.wav)

Code : Tout sélectionner

JouerSonGalerie(LeSon As String)
exemple d'utilisation : JouerSonGalerie("cow.wav")
Pour pouvoir utiliser le service média adéquat il faut que le code détecte l'O.S sur lequel il est exécuté. J'utilise la fonction de LibreOfficiant OSName :

Code : Tout sélectionner

Function OSName As String
    ''' Return platform name as "MAC", "UNIX", "WIN" '''
    ' LibreOfficiant  05/2019
    With GlobalScope.Basiclibraries
        If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    Dim keyNode As Object ' com.sun.star.configuration.ConfigurationAccess '
    keyNode = Tools.Misc.GetRegistryKeyContent("org.openoffice.Office.Common/Help")
    OSName = keyNode.GetByName("System")
    ' inferred from "Tools.UCB.ShowHelperDialog" '
End Function ' (Tools).OSName
Les services media utilisés pour jouer le son sont :
com.sun.star.media.Manager_DirectX pour Windows
com.sun.star.comp.media.Manager_GStreamer pour Unix (nécessite que la bibliothèque Gstreamer soit installée dans l'O.S)).
com.sun.star.media.Manager_MacAVF pour Macos (difficile à trouver celui-là : je n'ai pas trouvé sur internet de code qui l'utilise).
L'objet player est en variable globale pour éviter qu'il soit détruit à la fin de la procédure où il est utilisé. Si on le déclare dans une procédure, il faut attendre que le son soit joué avant de terminer la procédure (par une boucle testant l'état du player). Cela empêche de lancer une autre macro. Avec l'objet player en variable globale, le son est joué en arrière plan.
En pièce jointe un classeur contenant deux modules.
1 - Le module ModSonJP son décrit précédemment.
2 - Un module ModTestSonJP qui permet de tester les deux procédures du module Son.
Dans le classeur il y a deux boutons et une combobox :
La Combobox est chargée à l'activation du document, avec la liste des sons disponibles dans la galerie de sons, par la macro ListerSonsGalerie du module ModTestSonJP.
Le premier bouton permet de jouer le fichier qui se trouve dans la cellule A1 par la macro CmdJouerSonA1 du module ModTestSonJP.
Le deuxième bouton permet de jouer le fichier choisi dans la combobox par la macro CmdJouerSonGalerie du module ModTestSonJP.
TestSon.PNG


Testé sous Windows 10 avec LibreOffice 7.3.4.2 et OpenOffice 4.1.13
sous Ubuntu 20.04 avec LibreOffice 7.3.4.2
sous Macos Catalina 10.15 "Virtuel" avec OpenOffice 4.1.12 ( à confirmer que cela fonctionne avec un "vrai" Mac)

Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Basic] Jouer un son (wav, mp3)

Message par Dude »

Jurassic Pork a écrit : 31 août 2022 14:06 n'ayant pas trouvé un code qui joue un son
Redif : https://forum.openoffice.org/fr/forum/s ... d%5B%5D=15
:mrgreen:

Pour ta fonction OSName, tu as GetGuiType à ta disposition.
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Basic] Jouer un son (wav, mp3)

Message par Jurassic Pork »


La modération vous a écrit: Merci de ne pas citer l'intégralité du message dans votre réponse surtout si c'est pour répété vos propres propos.
Cela alourdit inutilement la lecture.

Dude a écrit : 31 août 2022 14:17 Redif : https://forum.openoffice.org/fr/forum/s ... d%5B%5D=15
:mrgreen:

Pour ta fonction OSName, tu as GetGuiType à ta disposition.
Hé bien NON ! GetGuiType ne teste pas MACOS et les codes dont tu parles ne fonctionnent pas sur mon MacOS et en plus dans les codes dont tu parles il n'y a pas l'utilisation de la galerie sons.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Basic] Jouer un son (wav, mp3)

Message par Dude »

Jurassic Pork a écrit : 31 août 2022 14:23 GetGuiType ne teste pas MACOS
Parce que Linux et MacOS sont issus du même noyau Unix.
Jurassic Pork a écrit : 31 août 2022 14:23 il n'y a pas l'utilisation de la galerie sons
A préciser dans le titre dans ce cas.
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
Messages : 9659
Inscription : 18 juil. 2008 15:29
Localisation : F-Oise + F-Savoie

Re: [Basic] Jouer un son (wav, mp3)

Message par tintin »

Bonjour Jurassic Pork,

Tout cela dépasse mon champ de compétence mais j'ai fait l'essai. :?
Comme dans ma signature : AOO 4.1.13 + macOS Intel 12.5.1 + temurin-8.jdk

Je ne vois pas où peut mener le contenu de la cellule A1.
Sur macOS les données sont stockées sur Macintosh HD. J'ai tenté plusieurs choses sans succés :(

En revanche le choix d'un son quel qu'il soit dans la cellule A3 est joué lors de l'action sur le bouton en B3.

Sur LibO 7.3.5 stable et macOS 10.13.6 + Eclipse Adoptium 11.0.14.1
Idem pour A1 et B1
Pour A3 une seule proposition de son (laser en l'occurrence) et l'action sur le bouton en B3 est sans effet.
AOO 4.1.15 et LibO 24.2.6 / macOS Intel 13.7.1 Ventura
Adoptium-temurinJDK-jre_1.8.0_432 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Basic] Jouer un son (wav, mp3)

Message par Jurassic Pork »

tintin a écrit : 31 août 2022 15:00 Je ne vois pas où peut mener le contenu de la cellule A1.
Sur macOS les données sont stockées sur Macintosh HD. J'ai tenté plusieurs choses sans succés :(
Par exemple si tu as un son monSon.mp3 qui est stocké dans le répertoire Documents et que ton nom d'utilisateur est toto, faut mettre
/Users/toto/Documents/monSon.mp3 en A1
MacTestSon.PNG
tintin a écrit : 31 août 2022 15:00 Sur LibO 7.3.5 stable et macOS 10.13.6 + Eclipse Adoptium 11.0.14.1
Idem pour A1 et B1
Pour A3 une seule proposition de son (laser en l'occurrence) et l'action sur le bouton en B3 est sans effet.
C'est en fait qu'il a pas trouvé la galerie de sons (je n'ai pas testé avec LibreOffice sous MacOS)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
Messages : 9659
Inscription : 18 juil. 2008 15:29
Localisation : F-Oise + F-Savoie

Re: [Basic] Jouer un son (wav, mp3)

Message par tintin »

Jurassic Pork a écrit : 31 août 2022 15:20 faut mettre
/Users/toto/Documents/monSon.mp3 en A1.
J'ai compris mon erreur. Je mettais des Barres obliques inversées. :marto:
Jurassic Pork a écrit : 31 août 2022 15:20C'est en fait qu'il a pas trouvé la galerie de sons
Oui, sans doute c'est ce que j'avais cru comprendre et que je voulais signaler. Je n'utilise pas LibO et n'avais pas le temps de faire plus. :o
AOO 4.1.15 et LibO 24.2.6 / macOS Intel 13.7.1 Ventura
Adoptium-temurinJDK-jre_1.8.0_432 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Basic] Jouer un son (wav, mp3)

Message par Jurassic Pork »

Jurassic Pork a écrit : 31 août 2022 15:20 C'est en fait qu'il a pas trouvé la galerie de sons (je n'ai pas testé avec LibreOffice sous MacOS)
Bon j'ai installé LibreOffice 7.3.5 sur mon MacOs et j'ai compris pourquoi la galerie de sons ne fonctionnait pas dans mes macros. Contrairement aux installations de OpenOffice et LibreOffice (sous les autres O.S) il n'y a pas de répertoire share dans le répertoire d'installation du programme et la galerie de sons se trouve sous le répertoire Resources, donc pour que mes macros fonctionnent avec L.O sous MacOS il faut faire les modifications suivantes :
dans la procédure JouerSonGalerie :

Code : Tout sélectionner

    sSound1 = CreateUnoService("com.sun.star.util.PathSubstitution")._
        substituteVariables("$(inst)/Resources/gallery/sounds/" & LeSon, True)
        'substituteVariables("$(inst)/share/gallery/sounds/" & LeSon, True)
dans la procédure ListerSonsGalerie :

Code : Tout sélectionner

    sFolder = CreateUnoService("com.sun.star.util.PathSubstitution")._
        substituteVariables("$(inst)/Resources/gallery/sounds/", True)
        'substituteVariables("$(inst)/share/gallery/sounds/", True)
Avec ces modifications mes macros fonctionnent avec L.O sous MacOs.
Attention dans ce cas les macros ne sont plus compatibles avec OpenOffice et LibreOffice sous les autres O.S

Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04