Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Conteneur QuickTime® : plugin pour contrôler des films et des sons QuickTime®

Date de publication : Novembre 2005

Par Thomas Maul (4D Germany)
 

Ce plug-in permet à un développeur d'ajouter des fonctionnalités QuickTime dans une application 4D. vous pourrez jouer une vidéo QuickTime ou de la musique ! Le plug-in QuickTime supporte tous les films et formats sonores supportés par QuickTime. Avec le contrôleur standard de QuickTime, seul un minimum de code est requis ; les commandes optionnelles permettent le plein accès au plug-in, de sorte que vous puissiez créer votre propre interface utilisateur.

Liste des fonctionnalités
Vue d'ensemble
Video
Audio
Description des commandes
QTSetMovie
QTSetControl
QTGetControl
Commandes sans interface utilisateur
QTPlaySound
QTStopPlay
Base exemple


Liste des fonctionnalités


Le plug-in autorise les fonctionnements suivants :

Vue d'ensemble

Pour avoir une idée des fonctionnalités, lancez la base exemple :

Interface de la base exemple

Video

Utilisez le bouton "Ouvrir" pour choisir un film sur votre disque dur. Le film sera affiché dans la partie supérieure de l'écran. Notez que vous pouvez retailler le formulaire et que la zone QuickTime® sera retaillée en proportion. Utilisez le bouton radio "Zoom" pour afficher la zone QuickTime® proportionnellement. Par exemple, saisissez 25% pour un affichage réduit. La taille maximum du zoom dépend de la taille de la zone, et si les valeurs sont trop grandes, elles seront automatiquement réduites.

Utilisez le contrôleur pour jouer des films ou des fichiers musicaux, changez la position du curseur ou changez le volume. La zone de contrôle offre une série de cases à cocher qui permettent de cacher différents éléments d'interface. Les boutons du groupe "Jouer" vous permettent de gérer le film pas à pas (avant ou arrière) même si le contrôleur est caché.

Le second groupe de boutons dans la partie basse du dialogue permet un contrôle plus fin de la zone. Tout d'abord, cliquez sur le bouton "Mettre à jour". Le code de ce bouton lit le paramétrage courant de la zone et met à jour toutes les valeurs d'affichage. Modifiez le volume à l'aide du thermomètre proposé. Si le contrôleur présente l'icône de volume, vous pouvez vérifiez que cet icône montre la nouvelle valeur.

Utilisez également le thermomètre Position pour vous déplacer dans la vidéo. La règle Vitesse vous permet de contrôler la vitesse. Si la vidéo est arrêtée, la règle est positionnée à 0. Déplacez-la sur la droite pour avancer. Plus vous déplacerez la règle vers la droite, plus vous jouerez vite. Déplacez la règle vers la gauche pour repartir en arrière, et jouer de même plus lentement ou plus vite. Le champ "Unité" vous donne l'unité de base de la vidéo sélectionnée. Beaucoup de vidéo utilise la valeur "600 par seconde". Le champ "Longueur" vous donne la longueur de la vidéo. La vidéo dans la copie d'écran indique une valeur de "196200", divisée par l'unité de base (600), retourne la longueur en secondes (327 secondes) de la vidéo.

Enfin, pour jouer simplement une partie de la vidéo, cochez le bouton "Autoriser l'édition". Choisissez la sélection en utilisant CLIC pour début et SHIFT CLIC pour fin.


Un clic sur le bouton "Mise à jour" lira les données sélectionnées et affichera les valeurs correspondantes dans les champs Sélection et Longueur.

Dans notre exemple, la sélection commence à l'unité 69 575 (soit 69 575/600 = 115,95), cela signifie que la sélection commence à la 115e seconde), la sélection fait 49 439 unités, c'est-à-dire environ 83 secondes.

info Note
Vous pouvez aussi indiquer manuellement la sélection en saisissant directement la valeur dans les champs Sélection ou Longueur.

Si vous avez cliqué sur le bouton "Jouer Sélection", seule la sélection sera jouée. En utilisant les boutons Boucle, Pas de boucle, Palindrome, vous pouvez choisir si la vidéo s'arrête une fois terminée, si elle repart au début de la sélection ou rejoue en arrière à la vitesse standard jusqu'au début de la sélection puis rejoue vers l'avant et ainsi de suite.


Audio


Si le fichier sélectionné n'est pas une vidéo mais un fichier musical, la zone QuickTime® reste vide mais affiche le contrôleur (s'il est déclaré visible). Ainsi vous pouvez contrôler la position, la sélection, la vitesse, la lecture en boucle, palindrome, etc.


Description des commandes

Toutes les commandes, excepté QTPlaySound et QTStopSound nécessitent un affichage par l'intermédiaire d'un formulaire (utilisation d'un dialogue, modification d'enregistrement, etc...) avec une zone externe QTContainer. Le premier paramètre de ces commandes est le nom de la zone externe.


QTSetMovie

QTSetMovie(Zone;CheminAccèsDocument) -> CodeErreur


Paramètre Type  Description 
Zone  Entier long  Zone QTContainer 
CheminAccèsDocument  Texte  Chemin d'accès complet vidéo ou fichier son 
CodeErreur  Entier long  Code d'erreur (0= pas d'erreur) 

Description
La commande QTSetMovie est la première commande nécessaire à appliquer à une zone. Elle spécifie la vidéo ou fichier son qui doit être ouvert.

Résultat
Si la vidéo s'est correctement ouverte, la fonction retourne 0. Sinon une erreur est renvoyée :
      -1 : pas de zone spécifiée
      -2 : la zone spécifiée n'est pas une zone QTContainer
      -3 : le chemin d'accès est supérieur à 255 caractères
      -43 : fichier non trouvé
      -33 à -84 : voir le chapitre Erreurs du gestionnaire de fichiers du système (documentation 4D)


QTSetControl

QTSetControl (Zone;Sélecteur;Valeur) -> CodeErreur


Paramètre Type  Description 
Zone Entier long Zone QTContainer
Sélecteur Entier long Code de la fonction à écrire
Valeur Entier long Valeur du paramètre
CodeErreur Entier long Code d'erreur (0 = pas d'erreur)

Description
La commande QTSetControl vous permet de changer la valeur de plusieurs fonctions du container. De nombreuses fonctionnalités peuvent être lues et écrites, certaines peuvent seulement être lues.

Le paramètre Sélecteur désigne les paramètres à écrire. Le plug-in vous offre des constantes prédéfinies qui sont dans le thème QTControlCommands :

Constantes Sélecteur Description
QTPlay 1 1 pour jouer en avant, à vitesse standard. 0 pour stopper. Ecriture seulement. Utilisez QTSpeed pour lire le statut courant.
QTStep 2 Déplace la trame courante du nombre indiqué, en avant ou en arrière (nombre négatif).
QTGoto 3 Position courante de la vidéo, en unité de la vidéo. Doit être compris entre 0 et QTGetlength. Notez que chaque position doit afficher un nombre différent. Lecture/écriture.
QTVolume 4 Indique le volume du film. Valeur entre 0 et 255. Lecture/écriture.
QTController 5 1 pour montrer le contrôleur, 0 pour le cacher. Lecture/écriture
QTVolumeIcon 6 1 pour montrer l'icône de volume, 0 pour le cacher. Lecture/écriture
QTStepIcon 7 1 pour montrer les icônes de pas à pas, 0 pour les cacher. Lecture/écriture
QTSpeed 8 Commande la vitesse du film. 0 = arrêt, 5 = demi, 10 = normale, 20 = double vitesse en avant. Nombres négatifs pour aller en arrière. Lecture/écriture.
QTGetLength 9 Nombre d'unités du film. Divisez par QTGetTimeScale pour obtenir la longueur en secondes. Lecture seulement.
QTLoop 10 0 = boucle, 2 = aucune boucle, 1 = Palindrome (joue en avant jusqu'à la fin, puis vers l'arrière jusqu'au début, et repart en avant jusqu'à la fin, ...et ainsi de suite. Lecture/écriture
QTSize 11 Retaille l'affichage du film. 0 = échelle à adapter. -1 = échelle proportionnelle > 0 = zoom en %, comme 100=100%. La valeur maximum est l'échelle proportionnelle, le film ne peut pas être affiché plus grand que la zone. Lecture/écriture.
QTGetTimeScale 12 Unités par seconde du film. La plupart des films utilise 600 unités par seconde. Lecture seulement.
QTGetMovieWidth 13 Retourne la largeur initiale du film en Pixel. Lecture seulement.
QTGetMovieHeigth 14 Retourne la hauteur initiale du film en Pixel. Lecture seulement.
QTSelectionStart 15 Se positionne au début de la sélection de film (voyez QTPlaySelection et QTEditSelection). La valeur doit être comprise entre 0 et QTGetLength dans l'unité du film. Lecture/écriture.
QTSelectionLength    16 Indique la longueur de la sélection du film. La valeur doit être inférieure à la différence entre QTGetLength - QTSelectionStart. Lecture/écriture.
QTPlaySelection 17 1 permet le mode PlaySelection. Permet seulement de jouer la sélection, pas la totalité du film. Lecture/écriture
QTEditSelection 18 Permet avec le contrôleur de choisir une partie du film. cette option change le curseur du contrôleur. En utilisant les touches Command/Ctrl clic, l'utilisateur peut choisir une partie du film. La sélection peut être aussi être choisie avec les options QTSelectionStart et QTSelectionLength. Ces valeurs ne peuvent être utilisées que dans le cadre d'un QTPlaySelection. Lecture/écriture.


Résultat de la fonction
Si le film a été ouvert avec succès, la fonction renvoie 0. Sinon ce peut être une des erreurs suivantes :
      -1 aucune zone n'a été indiquée
      -2 la zone indiquée n'est pas une région de QTContainer
      -3 aucun film n'est ouvert
      -4 le media ne supporte pas les actions du contrôleur (Image)

info D'autres nombres en négatif :
voir la documentation de Apple QuickTime®
http://developer.apple.com/documentation/QuickTime/APIREF/errorcodes.htm


QTGetControl

QTGetControl(Zone ; Sélecteur ; valeur) - > CodeErreur

Paramètre Type  Description 
Zone Entier long QTContainer de zone
Sélecteur Entier long Code de la fonction à lire
Valeur Entier long Valeur du paramètre
CodeErreur Entier long Résultat de fonction (0 = aucune erreur)

Description
La commande QTGetControl vous permet de lire la valeur courante de plusieurs fonctions d'un conteneur de film.
Le paramètre Sélecteur indique le paramètre à lire. Le plug-in vous offre les constantes prédéfinies suivantes, qui sont dans le thème QTControlCommands. Pour une description voir la commande QTSetControl.

Résultat de la fonction
Voir la commande précédente QTSetControl


Commandes sans interface utilisateur

Les commandes QTPlaySound et QTStopSound vous permettent de jouer un son sans interface utilisateur, vous n'avez pas besoin d'un formulaire ou d'une zone QTContainer.

Le but est de jouer un son (pas un film !) comme la commande 4D, JOUER SON.

La commande de QTPlaySound n'est pas supposée être utilisé pour jouer des fichiers de musique, mais des sons courts, comme un bip. QTPlaySound est exécuté en mode synchrone c'est-à-dire que le processus est arrêté pendant que le son est joué. Si vous souhaitez jouer un son prolongé, vous devez lancer un process à part (ou utilisez une zone externe QTContainer avec contrôleur caché).


QTPlaySound

QTPlaySound (CheminAccèsDocument) -> CodeErreur

Paramètre Type  Description 
CheminAccèsDocument Texte Chemin d'accès complet au fichier son
CodeErreur Entier long Code d'erreur (0 = pas d'erreur)

Description
La commande QTPlaySound vous permet de jouer des fichiers son supportés par QuickTime®, comme des fichiers MP3. Pendant que le son est joué, le process est suspendu, les autres process continuent de travailler normalement (le son est joué en mode synchrone), tout comme fonctionne la commande de 4D, JOUER SON. Pour jouer un son tandis que votre process continue à travailler, lancer un process local supplémentaire.

info Note
La commande QTStopSound exécutée d'un autre process stoppe un QTPlaySound immédiatement.

Résultat de la fonction
La fonction retourne 0 si le son a été joué correctement.
Les nombres négatifs entre 0 et -99 sont des messages d'erreurs Apple :
http://4d.developpez.com/documentation/4DDoc2004/CMF/CMF02028.HTM

Pour les nombres négatifs entre -2000 et au dessus, voir les codes d'erreur QuickTime® :
http://developer.apple.com/documentation/QuickTime/APIREF/errorcodes.htm

Exemple :
code exemple 4D
Si (Nombre de parametres=0)
   $p:=Nouveau process("Example_PlaySound";32000;"PlaySound";"Play";*)
Sinon
   $err:=QTPlaySound ("f:\\xsong.mp3")
   Si ($err#0)
      ALERTE("Error: "+Chaine($err))
   Fin de si
Fin de si

QTStopPlay

QTStopPlay stoppe un son joué avec la commande QTPlaySound. S'il n'y a pas de son joué, cette commande ne fait rien. Elle ne nécessite aucun paramètre et ne retourne aucun résultat.

Parce que QTPlaySound suspend le process courant, cette commande ne peut être exécutée qu'à partir d'un autre process.

 


Base exemple

Télécharger la base exemple.

__________________________________________________
Copyright © 1985-2009 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.
__________________________________________________
 



Valid XHTML 1.1!Valid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Contacter le responsable de la rubrique 4D