[Basic] Jouer un fichier Multimedia

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.
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

[Basic] Jouer un fichier Multimedia

Message par bm92 »

Cette analyse m'a été inspirée par le fil [Résolu] [Writer] Audio déclenchée par clic sur un texte

Dans l'API OpenOffice, le module com.sun.star.media contient un service et des interfaces permettant de "lire" un fichier media, par exemple un fichier son, sans afficher un lecteur Multimedia.
La gamme des fichiers media lisibles dépend du système d'exploitation et des codec installés sur l'ordinateur. Par exemple sur le mien (Windows XP avec de nombreux codecs) je peux lire des fichiers son .wav .flac .mp3 .mid, et même des fichiers video .mov .mp4 ou des images .jpg .png.

Ci-joint un document exemple, contenant des macros déclenchées par des boutons. Recherchez un fichier media, par exemple un fichier .wav, sur votre ordinateur.
MediaPlayer.ods
Le fichier a été testé sur Windows XP avec Apache OpenOffice 3.4.1 et LibreOffice 3.6.4.
Signalez les problèmes rencontrés sur votre système d'exploitation et variante OpenOffice.

Détails techniques
Le service documenté, com.sun.star.media.Manager, n'existe pas... Ce n'est qu'un "modèle" pour les services réellement disponibles sur la version d'OpenOffice (Apache ou LibreOffice) adaptée au système d'exploitation.
Les vrais services ont pour noms com.sun.star.media.Manager_DirectX pour Windows, com.sun.star.media.Manager_GStreamer pour Linux, etc; ces services existent dans les fichiers source d'OpenOffice, mais OpenOffice n'en inclus qu'un (à ce que j'ai vu) selon le système d'exploitation cible.
Mon codage recherche le premier service disponible parmi ceux-ci, afin d'être indépendant du système d'exploitation.

Il est nécessaire d'obtenir un nouvel objet lecteur (variable lectMedia) pour chaque media à lire : on ne peut changer de media sur un lecteur. Ce lecteur doit exister pendant toute la durée du media, c'est pourquoi il est conservé dans une variable Global. Si la variable est locale, il faut attendre dans la macro la fin d'exécution, comme dans la macro jouerSonCourt.

Dans la lecture d'un fichier vidéo ou d'une image, une fenêtre simple affiche l'image. Je n'ai pas trouvé comment imposer l'affichage sur un objet particulier dans le document.

L'interface com.sun.star.media.XPlayer offre des méthodes intéressantes, lisez la documentation.
Dans mes essais, la méthode .volumeDB n'a pas changé le volume du son.

Le service Manager_DirectX diffère entre Apache OpenOffice 3.4.1 et LibreOffice 3.6.4.
LibreOffice n'offre pas de Listener, pas de méthode .dispose, pas d'interface com.sun.star.lang.XComponent, et la méthode .isPlaying renvoie toujours True.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
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: Jouer un fichier Multimedia

Message par Dude »

Ouaip, déjà publié en 2010 :D : http://forum.openoffice.org/fr/forum/vi ... =8&t=20322
Le modérateur a écrit :Basculement et balisage adéquate pour la section Suprême de code
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Re: [Basic] Jouer un fichier Multimedia

Message par bm92 »

Je n'avais pas trouvé ce fil dans mes recherches sur Internet (qui m'ont conduit, entre autres, à un blog italien et un blog japonais).
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
Avatar de l’utilisateur
alhazred
ManitOOu
ManitOOu
Messages : 3028
Inscription : 30 avr. 2011 23:08
Localisation : Casablanca (Maroc)

Re: [Basic] Jouer un fichier Multimedia

Message par alhazred »

Bonjour et bonne année à tous,

Ça, bm92, ça va sans doute me permettre de résoudre élégamment le problème de portabilité que j'avais dans ce fil, avec en plus la possibilité d'utiliser des fichiers moins replets que les .wav.
Mille et un mercis.
À bientôt

LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.

Et la sauvegarde incrémentée, c'est sympa !