Ce n'est pas en rapport direct avec le format des skins, mais vous devez savoir que MPlayer n'a pas de skin par défaut, donc au moins une skin doit être installée pour pouvoir utiliser la GUI.
MPlayer cherche des skins dans ces répertoires (dans cet ordre):
$(DATADIR)/skins/
$(PREFIX)/share/mplayer/skins/
~/.mplayer/skins/
Notez que le premier répertoire peut varier suivant la façon dont MPlayer a été configuré (voir les arguments --prefix et --datadir du script configure).
Chaque skin est installée dans son propre répertoire sous l'un des répertoires listés ci-dessus, par exemple:
$(PREFIX)/share/mplayer/skins/default/
Les images doivent être en truecolor (24 ou 32 bpp) et enregistrées au format PNG.
Dans la fenêtre principale et la barre de lecture (c.f. ci-dessous) vous pouvez utiliser des images dotées de régions "transparentes": les régions remplies avec la couleur #FF00FF (magenta) deviennent transparentes dans MPlayer. Cela signifie que vous pouvez obtenir des formes particulières pour vos fenêtres si votre serveur X possède l'extension XShape.
Les skins sont d'un format plutôt libre (contrairement aux formats fixes de Winamp/XMMS, par exemple), donc il ne tient qu'a vous de créer quelque chose de bien.
Actuellement, trois fenêtres doivent être décorées: la fenêtre principale, la sous-fenêtre, la barre de lecture, et le menu (activable par un clic droit).
Vous contrôlez MPlayer par la fenêtre principale et/ou la barre de lecture. L'arrière plan est une image. Divers objets peuvent (et doivent) venir se placer dans cette fenêtre: boutons, podomètres (sliders) et labels. Pour chaque objet, vous devez spécifier sa taille et sa position.
Un bouton comprend trois états (pressé, relâché, désactivé), donc l'image doit se diviser en trois parties, verticalement. Voir l'objet bouton pour plus de détails.
Un podomètre (principalement utilisé pour la barre d'avancement et le contrôle du volume/balance) peut posséder n'importe quel nombre d'états en empilant ces images, verticalement. Voir hpotmeter et potmeter pour plus de détails.
Les labels sont un peu particuliers : les caractères nécessaires pour les dessiner sont récupérés depuis un fichier image, décrit par un fichier de description de polices. Ce dernier est un fichier texte brut spécifiant la position x,y ainsi que la taille de chaque caractère dans l'image (le fichier image et son descripteur forment une police ensemble). Voir dlabel et slabel pour plus de détails.
Toutes les images disposent de la couleur de transparence décrite dans la section formats d'images. Si le serveur X ne supporte pas l'extension Xshape, les parties transparentes seront noires. Si vous voulez utiliser cette fonction, la largeur de l'image de la fenêtre principale devra être divisible par 8.
La sous-fenêtre contient la vidéo en elle même. Elle peut afficher une image si aucun film n'est chargé (ce n'est jamais plaisant d'avoir une fenêtre vide :-)) Note: la couleur de transparence n'est pas autorisée ici.
Le menu est simplement un moyen de contrôler MPlayer par des entrées graphiques. Deux images sont nécessaires pour le menu: l'une d'elle, l'image de base, affiche le menu dans son été normal, l'autre est utilisée pour afficher les entrées sélectionnées. Quand vous faites apparaître le menu, la première image s'affiche. Si vous passez la souris sur les entrées du menu, l'entrée sélectionnée est copiée depuis la seconde image, et uniquement la partie concernée par cette sélection (la seconde image ne s'affiche jamais complètement.)
Une entrée de menu se définit par sa position et sa taille dans l'image (voir la section menu pour plus de détails).
Une chose essentielle n'a pas encore été mentionnée : pour que les boutons, podomètres et entrées du menu fonctionnent, MPlayer doit savoir quoi en faire. Ceci dépend des messages (events) envoyés. Pour chacun de ces objets vous devez définir le message à afficher quand on clique dessus.
Vous aurez besoin des fichiers suivants pour construire une skin:
Le fichier de configuration nommé skin indique à MPlayer comment assembler les différentes images et comment interpréter les clics de souris sur l'interface.
L'image de fond de la fenêtre principale.
Les images correspondants aux objets de la fenêtre principale (y compris une ou plusieurs polices et descripteurs nécessaires à l'affichage des textes).
L'image affichée dans la sous-fenêtre (optionnel).
Deux images pour le menu (nécessaires uniquement si vous voulez créer un menu).
A l'exception du fichier de configuration, vous pouvez nommer les fichiers comme bon vous semble (mais notez que les descripteurs de polices doivent avoir une extension .fnt).