Développez sur mobile - Page 5
Index de l'article
Développez sur mobile
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Toutes les pages

 

Multimédia API
Si votre téléphone portable supporte la spécification JSR 135 Mobile Media API, vous pourrez gouter à la joie de piloter l'appareil photo ou caméra de votre mobile. 4 classes principales sont là pour utiliser l'API : Voir figure 4

  • Manager
  • Player
  • Control
  • Datasource

Image

Figure 4

 

La classe Manager contient uniquement des méthodes statiques. La méthode Manager.createPlayer créé un player avec un DataSource associé pour lui fournir les données. La source de données peut être construite à partir d'un flux (InputStream) ou d'un " URI-style locator ". En voici quelques exemples :

URI-style locator
Source de données
file:///c:/nokia/Images/Image001.jpg
Un simple fichier
http://adresseweb.com/fichier.wav
Une adresse web
capture://image
Capturer une photo depuis l'appareil photo
capture://video
Capturer une vidéo
capture://audio
Enregistrer du son

Tableau 4

 

Voici un exemple de code pour afficher la capture en temps réel de ce qui est visualisé par l'objectif de l'appareil photo. Le rendu est affiché directement sur la Form.

Form f = new Form("JPP Form"); // Crée la form principale
Display.getDisplay(this).setCurrent(f); // Affiche la form
Player p = Manager.createPlayer("capture://video");
p.realize(); // Initialise le player
VideoControl vc = (VideoControl)p.getControl("VideoControl");
if (vc != null)
{
Item it = (Item) vc.initDisplayMode (VideoControl.USE_GUI_PRIMITIVE, null);
f.append(it); // Rajoute l'item à la form.
p.start(); // Affiche la vidéo dans l'item.
}


La ligne de code suivante permet de prendre une photo :
videoControl.getSnapshot("encoding=bmp");

Cette architecture très ouverte permet aussi d'afficher des vidéos au format 3gp, de jouer des sons très facilement, etc. La méthode getControl de la classe Player renvoie une interface abstraite que plusieurs classes concrètes implémentent. Suivant les cas, le transtypage vous permettra de manipuler tel ou tel type de contrôle. Voici quelques exemples de classes concrètes :

  • ToneControl
  • VolumeControl
  • VideoControl
  • StopTimeControl
  • RecordControl