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

[Basic] Jouer un fichier Multimedia

Messagepar bm92 » 02 Jan 2013 15:36

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
Exemple d'utilisation de media.Manager
(12.68 Kio) Téléchargé 295 fois

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

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
bm92
ManitOOu
ManitOOu
 
Message(s) : 2562
Inscrit le : 26 Nov 2005 14:42

Re: Jouer un fichier Multimedia

Messagepar Dude » 02 Jan 2013 15:49

Ouaip, déjà publié en 2010 :D : viewtopic.php?f=8&t=20322

Le modérateur a écrit:Basculement et balisage adéquate pour la section Suprême de code
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20398
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Basic] Jouer un fichier Multimedia

Messagepar bm92 » 02 Jan 2013 18:30

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
bm92
ManitOOu
ManitOOu
 
Message(s) : 2562
Inscrit le : 26 Nov 2005 14:42

Re: [Basic] Jouer un fichier Multimedia

Messagepar alhazred » 03 Jan 2013 14:17

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 !
Avatar de l’utilisateur
alhazred
ManitOOu
ManitOOu
 
Message(s) : 3028
Inscrit le : 01 Mai 2011 00:08
Localisation : Casablanca (Maroc)


Retour vers Suprême de code

Qui est en ligne ?

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