IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Multimédia Java Discussion :

[JMF] Can't commit JMFRegistry


Sujet :

Multimédia Java

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut [JMF] Can't commit JMFRegistry
    Bonjour à tous,

    je développe actuellement un sipphone avec JMF et Jain.

    J'ai un souci avec JMF car je n'arrive pas à capturer le micro.

    En effet, lors de la commande :
    Registry.commit(); de la classe JMFInit de SipCommunicator
    J'obtiens une IOException : Can't find registry file

    Question : Quel est ce fichier ?
    Est-ce celui dans documents and settings\user1\.jmf\jmf.properties ?

  2. #2
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    je crois que :
    1- il faut etre administrateur du système pour faire cela
    2- il faut être placer dans un répertoire précis pour éxécuter la commande
    Colère et Haine mènent à la Puissance

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    J'ai presque réussi à résoudre le problème mais le mystère reste entier.

    Je m'explique.
    Le SIP Communicator fonctionne sur mon poste avec JMF.
    Lui arrive à faire un commit du registry alors que je le lance également avec eclipse.
    Donc j'ai ajouté la ligne dans SIP Communicator :
    CaptureDeviceManager.commit();
    qui a pour effet d'inscrire sur le disque dur la config du CaptureDeviceManager.
    Donc mon sipphone arrive maintenant à détecter le matériel de capture mais je suis dépendant de SIP Communicator pour le déploiement de mon sipphone sur d'autres postes.

    Comment se fait-il que SIP Communicator y arrive et pas mon appli ?

  4. #4
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    peut etre pcq SIP Communicator a changé le nom du fichier de sauvegarde et qu'il sait que c'est ce dernier qu'il doit utiliser
    Colère et Haine mènent à la Puissance

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    C'est ce que je me suis dit mais nulle part dans le code SIP Communicator, il n'y est indiqué le chemin du fichier, ni dans le fichier de config XML, ni dans les Properties de la JVM.

    Qu'est ce que cet objet com.sun.media.util.Registry ?

  6. #6
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    aucune idée! je pense pas non plus que ça puisse manipuler la base de registre.
    bref, jmf est open source, plonge ton nez un peu dedans
    Colère et Haine mènent à la Puissance

  7. #7
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    C'est ce que je vais faire. Mais entre JAIN et JMF, je suis servi .
    Mais c'est un projet très interessant, ça change du J2EE et de JDBC.

    Merci à toi et si d'autres ont une idée, qu'ils n'hésitent pas !

  8. #8
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    si t'as juste besoin du micro, tu n'es pas obligé de passé par JMF
    va voir la:
    http://www.hellohiro.com/sound.htm
    Colère et Haine mènent à la Puissance

  9. #9
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    Merci pour le lien.
    Je le garde sous le coude.

    Pour l'instant, j'arrive à enregistrer l'entrée du micro dans un fichier.
    Il ne me reste plus qu'à mettre en place un streaming en RTP à la place du fichier.

    Ce qui m'inquiète, comme je le disais dans mes posts précédents, c'est le déploiement sur le parc informatique.

  10. #10
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    eh bah tu vas gouter au java web start si tu comptes faire du streaming
    Colère et Haine mènent à la Puissance

  11. #11
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    Pourquoi java web start ?

    Je comptais simplement réaliser un jar et l'installer sur tous les postes de l'entreprise.

    Je dis ça car je n'ai jamais déployé avec JWS.

    Quels seraient les avantages ?

  12. #12
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    si c'est juste pour une appli, tu te passera de java web start
    mé si c'est pour une applet, tu devras t'y coller.

    le problème des applet, c'est qu'elle ne te permettront pas d'ouvrir un port (= pas de serveur possible)
    Colère et Haine mènent à la Puissance

  13. #13
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    Ouf, Tu me rassures car j'ai opté pour l'appli.

    Pour l'instant, je me paluche la JMF API GUIDE de Sun pour trouver des infos supplémentaires.

  14. #14
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    etudie bien, c'est super interessant je trouve.
    je suis en train de realiser un projet qui porte deja un bon fruit, me reste + ke fair murir les autres.
    si t'as des questions sur JMF hesite pas a me les poser
    Colère et Haine mènent à la Puissance

  15. #15
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    OK, merci beaucoup.

    En lisant la doc, j'ai trouvé mon bonheur avec le SessionManager.

    Je vais voir ce que je peux en faire.

  16. #16
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    SessionManager c'est déprécié, today y'a RTPManager
    Colère et Haine mènent à la Puissance

  17. #17
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    Ok, va pour le RTPManager !

    Il est vrai que la doc de Sun date de 1999 !!! Abusé quand même. Mais elle est très bien réalisé.

  18. #18
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par Robiwan59
    Ok, va pour le RTPManager !

    Il est vrai que la doc de Sun date de 1999 !!! Abusé quand même. Mais elle est très bien réalisé.
    J'arrive à ne plus avoir d'erreur mais tjs pas de son :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    AudioFormat format = new AudioFormat(AudioFormat.LINEAR, 8000, 8, 1);
            Vector deviceList = CaptureDeviceManager.getDeviceList(format);
            CaptureDeviceInfo di = null;
            Processor p = null;
            StateHelper sh = null;
            if(deviceList.size() >0){
                System.out.println(deviceList.size()+" périphérique(s) de capture détecté !");
                di = (CaptureDeviceInfo)deviceList.firstElement();
            }    
           else{
                System.out.println("Aucun périphérique de capture détecté !");
                System.exit(-1);
            }
            try {
                p = Manager.createProcessor(di.getLocator());
                sh = new StateHelper(p);
            } 
            catch (NoProcessorException npe) {
                npe.printStackTrace();
                System.exit(-1);
            } 
            catch (IOException ioe) {
                ioe.printStackTrace();
                System.exit(-1);
            }
            while(p.getState() < Processor.Configured){
                p.configure();
            }
            p.setContentDescriptor(new ContentDescriptor(ContentDescriptor.RAW));
            TrackControl[] track = p.getTrackControls();
            boolean encodingOK = false;
            for (int i = 0; i < track.length; i++) {
                if(!encodingOK && track[i] instanceof FormatControl){
                    if(((FormatControl)track[i]).setFormat(new AudioFormat(AudioFormat.ULAW_RTP, 8000, 8, 1))==null){
                        track[i].setEnabled(false);
                    }
                    else{
                        encodingOK = true;
                    }
                }
                else{
                    track[i].setEnabled(false);
                }
            }
            while(p.getState() < p.Realized){
                p.realize();
            }
            DataSource ds = null;
            try{
                ds = p.getDataOutput();
            }
            catch(NotRealizedError nre){
                nre.printStackTrace();
                System.exit(-1);
            }
     
            RTPManager rtpm = RTPManager.newInstance();
            try{
                SessionAddress localAddr = new SessionAddress(InetAddress.getLocalHost(),40000);
                rtpm.initialize(localAddr);
     
                SessionAddress destAddr = new SessionAddress(InetAddress.getByName("130.1.29.222"),40000);
                rtpm.addTarget(destAddr);
     
                SendStream ss = rtpm.createSendStream(ds, 0);
                ss.start();
                System.out.println("Envoi commencé");
            }
            catch(UnknownHostException uhe){
                uhe.printStackTrace();
            }
            catch(IOException ioe){
                ioe.printStackTrace();
            }
            catch(InvalidSessionAddressException isae){
                isae.printStackTrace();
            }
            catch(UnsupportedFormatException ufe){
                ufe.printStackTrace();
            }
    Une idée ?[/code]

  19. #19
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while(p.getState() < p.Realized){
                p.realize();
            }
    c'est pas comme ça qu'on procède!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    p.realize();
    while(p.getState() != p.Realized)
       try{Thread.sleep(10);}catch(Exception eee){}
    idem pour p.configure();

    et puis si tu veux du son, il faudra lancer ton périphérique d'écoute
    puis ton processeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DataSource ds = null;
            try{
                ds = p.getDataOutput();
            }
            catch(NotRealizedError nre){
                nre.printStackTrace();
                System.exit(-1);
            } 
    ds.start();
    p.start();
    et si tu veux juste faire une appli entre seulement 2 clients, tu n'es pas obligé de te prendre la tête avec RTPManager, un DataSink fera l'affaire.
    Mais je te conseille quand même d'apprendre à utiliser RTPManager
    Colère et Haine mènent à la Puissance

  20. #20
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2005
    Messages : 103
    Points : 81
    Points
    81
    Par défaut
    J'ai ajouté le code que tu m'as indiqué.

    En effet, j'avais oublié quelque start() mais je n'ai tjs pas de son.
    Peut-être un problème de format .

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/01/2014, 08h33
  2. [Utilisation] commit : permission denied, Can't write activity db
    Par olivier57b dans le forum Subversion
    Réponses: 1
    Dernier message: 03/02/2012, 15h14
  3. [Installation] Can't open activity db : Permission denied pour le commit.
    Par Xavier3131 dans le forum Subversion
    Réponses: 5
    Dernier message: 26/06/2009, 07h11
  4. commit et rollback....?
    Par The_Nail dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 06/06/2003, 14h36
  5. [JMF][MediaPlayer] hauteur et largeur de la video
    Par mbp566 dans le forum Multimédia
    Réponses: 3
    Dernier message: 07/08/2002, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo