Problème avec JMF

Bonjour, je dois concevoir un serveur qui gère des sources d'images, caméra, webcam, simulation d'images, etc... et pour ce faire j'utilise le "Java Media Framework"

le problème est le suivant, j'arrive a utiliser la première webcam

code :

MediaLocator ml = new MediaLocator("vfw:Microsoft WDM Image Capture (Win32):0");
player = Manager.createRealizedPlayer(ml);
player.start();

mais lorsqu'une deuxième webcam doit être connecté

code :

MediaLocator ml = new MediaLocator("vfw:Video Blaster WebCam 3/WebCam Plus (VFW):1");
player = Manager.createRealizedPlayer(ml);
player.start();

le programme plante car il ne peut se connecter à la deuxième webcam,
la fonction Manager.createRealizedPlayer(...) semble être une fonction
qui ne peut être appelée plus d'une fois.

Quelqu'un à une idée comment contourner le problème ?

Merci beaucoup

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. J'"up" ce post, si vous avez une idée, n'importe quoi, ne soyez pas géné ! C'est assez urgent !

    Merci
    1. bonjour ,ce problème m'a arrivé car lors que le JMF détecte la caméra et donne les mèmes noms (caractéristiques) ,j'ai pas trouver une solution avec JMF mais j'ai trouver une avec DSJ (DirectShow Java wrapper).
      http://www.humatic.de/htools/dsj/download.htm</code>

      si vous avez des documentations sur le directshow ,vous ferez plaisir de me les envoyer a votre Mail:Ba_zoubir@hotmail.com , et merci beaucoups.
      ////////////
      A. JMF (Java Media Framework) :
      JMF est une API Java permettant de manipuler aisément toutes sortes de contenus
      multimédia avec Java tels que du son ou de la vidéo. Elle offre les outils nécessaires pour faire de
      l?acquisition, du traitement et du transport de médias basés sur le temps. L?avantage est de
      pouvoir concevoir des applications utilisant des éléments multimédias (Webcam, micro,
      vidéos...) et pouvant s?exécuter sur différentes plates-formes logicielles (principalement
      Windows et Linux). La version actuelle de JMF est la 2.1.

      Cette API est une initiative de SUN qui souhaite apporter une solution « time-based media
      processing » (traitement de media basé sur un timeline) à Java. Les média basé sur le temps sont
      des données qui changent par rapport au temps. Nous les retrouvons bien entendu dans les vidéos,
      l?audio, les séquences MIDI et autres animations.
      Pour plus de détails.

      Cependant, JMF ne fait pas de distinction entre les différentes webcams installées sur la
      machine, Il les prend toutes pour : « vfw:Microsoft WDM Image Capture (Win32):0 ». Du coup,
      on ne peut en utiliser qu?une seule à la fois, sans même pouvoir la spécifier.
      Nous nous sommes alors orientés vers une deuxième solution, l?API FMJ Project.
      ///////
      B. FMJ Project (Freedom for Media in Java):
      Projet Open-source dans le but de fournir une alternative à JMF. Comme il est compatible
      avec JMF, on peut l?utiliser avec du code JMF existant. Cependant, certaines parties du projet
      sont encore au cours de développement, donc il peut y arriver qu?on se trouve devant plus de travail à faire.
      Pour plus de détails, voir http://fmj-sf.net/
      Cette solution produisait des résultats partiellement satisfaisants dont on a pu détecter et
      distinguer les différentes webcams installées sur la machine, mais le problème qu?on a rencontré
      est que même si la webcam n?est pas branchée, on reçoive les informations la concernant (Pilotes,
      formats supportés, ...). Nous avons donc laissé tomber cette API, et nous avons découvert l?API
      DirectShow.
      ////////
      C. DirectShow :

      DirectShow (parfois abrégé en DS ou dshow), est une API multimédia développée par
      Microsoft afin de permettre d?effectuer différentes opérations avec des données médias. Il
      remplace l?antérieure technologie Vidéo For Windows de Microsoft.

      Basé sur le framework Microsoft Windows Component Object Model (COM), DirectShow
      fournit une interface commune pour les médias dans de nombreux langages de programmation.