Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [JMF] problema riconoscimento webcam

    Ciao a tutti...
    ho un problema che proprio non riesco a risolvere...
    Sto realizzando un'applicazione per la gestione dello streaming da webcam tramite JMF e ho riscontrato un problema insolito:
    la mia webcam non viene vista dal codice di "autodetect" presente nella mia classe "WebcamCapture", mentre viene correttamente via sia dai programmi di chat (Skype, MSN) sia da JMStudio/JMRegistry stesso!!!

    Il codice che uso per l'autodetect è il solito:

    codice:
    public CaptureDeviceInfo autoDetect() {
        //restituisce la lista di tutti i devices disponibili
        Vector list = CaptureDeviceManager.getDeviceList(null);   
        CaptureDeviceInfo devInfo = null;
        
        if (list != null) {
            String name;
            for (int i = 0; i < list.size(); i++) {
                devInfo = (CaptureDeviceInfo) list.elementAt(i);
                name = devInfo.getName();
                
                //mi fermo non appena incontro un device di tipo "webcam" per windows
                if (name.startsWith("vfw:")) {
                    break;
                }
            }
            
            //controllo se ho trovato un device "vfw", nel caso termino qui..
            if (devInfo != null && devInfo.getName().startsWith("vfw:")) {
                return (devInfo);
            } else { //nessun device "vfw" trovato.. con JMF... tento con VFWCapture..
                for (int i = 0; i < 10; i++) {
                    try {
                        name = VFWCapture.capGetDriverDescriptionName(i);
                        if (name != null && name.length() > 1) {
                            devInfo = com.sun.media.protocol.vfw.VFWSourceStream.autoDetect(i);
                            if (devInfo != null) {
                                return (devInfo);
                            }
                        }
                    } catch (Exception ioEx) {  //non ho trovato nessun device "vfw"
                        statusBar.setText("Errore nella ricerca della webcam : "+ ioEx.getMessage());
                    }
                }
                return (null);
            }
        } else {  //list == null
            return (null);
        }
    }//autoDecect()
    Questo codice mi genera un errore nella chiamata "VFWCapture.capGetDriverDescriptionName(i)" dicendo che c'è un errore in VFWCapture.<clinit> alla riga 19..

    Il fatto è che lanciando direttamente

    codice:
     CaptureDeviceManager.getDeviceList(null)
    mi torna un Vector contenente nessun elemento e questo è strano visto che JMRegistry mi trova 2 periferiche audio e 1 video (che tra l'altro inizia per "vfw:")

    Ribadisco che la mia webcam funziona con JMStudio.. e lo streaming lo vedo correttamente!!

    In più lo stesso codice preso e lanciato sul mio portatile con webcam integrata, gira che è una meraviglia... qualcuno saprebbe darmi qualche indicazione??

    GRAZIE MILLE!!!!!
    Life is too short to spend it hoping or crying...JUST LIVE IT!

  2. #2
    Nessuno sa darmi qualche dritta al riguardo???
    Life is too short to spend it hoping or crying...JUST LIVE IT!

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Tiro ad indovinare, stai creando un applet e potrebbe avere necessità di essere dotata di firma digitale per accedere alle risorse di sistema. Strano che nella console non ti appaiano storie varie per permessi non accordati.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Ciao.. intanto grazie per l'interessamento...
    No ... non sto creando un applet... e cmq i permessi erano tutti settati...

    Il mio è proprio un programma standalone.. con main e tutto.. e la cosa strana è ke non mi vede neppure le periferiche audio... non solo quella video...
    Life is too short to spend it hoping or crying...JUST LIVE IT!

  5. #5
    Voglio aggiungere l'eccezione che mi lancia (e quindi lo stack relativo) quando eseguo il codice postato sopra... non so se qualcuno abbia già riscontrato un'anomalia del genere..

    codice:
    java.lang.UnsatisfiedLinkError: JMFSecurityManager: java.lang.UnsatisfiedLinkError: 
    no jmvfw in java.library.path
    	at com.sun.media.JMFSecurityManager.loadLibrary(JMFSecurityManager.java:206)
    	at com.sun.media.protocol.vfw.VFWCapture.<clinit>(VFWCapture.java:19)
    	at WebcamCapture.autoDetect(WebcamCapture.java:238)
    	at WebcamCapture.initialise(WebcamCapture.java:81)
    	at WebcamCapture.main(WebcamCapture.java:562)
    Quello proprio che non capisco è il motivo per il quale sia jmfinit.exe sia JMStudio sia JMRegistry mi vedano tranquillamente la webcam.. mentre con il codice postato sopra niente da fare.. non mi da nemmeno la lista dei device audio..

    Non so proprio più dove sbattere la testa!!!
    Life is too short to spend it hoping or crying...JUST LIVE IT!

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ma come non è un applet? e allora a che ti serviva il statusBar.setText? non è per le applet? Io ho preso il tuo codice, l'ho ripulito un po' di robe che non mi servivano ed ho fatto un programma stand-alone che stampa le info relative alla webcam
    codice:
    public class WebCam {
        public static void main (String[] args) {
            Vector list = CaptureDeviceManager.getDeviceList(null);
            CaptureDeviceInfo devInfo = null;
            if (list != null) {
                String name;
                for (int i = 0; i < list.size(); i++) {
                    devInfo = (CaptureDeviceInfo) list.elementAt(i);
                    name = devInfo.getName();
                    
                    //mi fermo non appena incontro un device di tipo "webcam" per windows
                    if (name.startsWith("vfw:")) {
                        break;
                    }
                }
            }
            
            //controllo se ho trovato un device "vfw", nel caso termino qui..
            if (devInfo != null && devInfo.getName().startsWith("vfw:")) {
                    System.out.println(devInfo);
            }
        }  
    }
    gli import che stai usando tu saranno di sicuro più che sufficienti e non sono qui riportati
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Non ho mai usato JMF, comunque qua e la' su internet si trovano casi analoghi al tuo. Sembra che il problema sia una dll mancante (dico sembra perche' non posso provare). Comunque guarda QUA se ti puo' essere utile.

  8. #8

    QUASI RISOLTO

    Originariamente inviato da Andrea1979
    Ma come non è un applet? e allora a che ti serviva il statusBar.setText? non è per le applet? Io ho preso il tuo codice, l'ho ripulito un po' di robe che non mi servivano ed ho fatto un programma stand-alone che stampa le info relative alla webcam.
    gli import che stai usando tu saranno di sicuro più che sufficienti e non sono qui riportati
    Il codice che hai postato l'avevo già provato pure io... niente da fare...
    Per quanto riguarda statusBar a volte i nomi possono ingannare.. se hai notato uso un suo metodo "setText(...)" proprio anche delle JLabel (statusBar è appunto una JLabel che simula la statusBar)

    Originariamente inviato da simo7784
    Non ho mai usato JMF, comunque qua e la' su internet si trovano casi analoghi al tuo. Sembra che il problema sia una dll mancante (dico sembra perche' non posso provare). Comunque guarda QUA se ti puo' essere utile.
    SEI UN MITO!!!
    Effettivamente preso com'ero dal problema non ho pensato di cercare l'errore ritornato in google (alla faccia della firma che ho qui :P ) Effettivamente facendo le modifiche suggerite in quel forum la cosa si risolve... adesso devo lavorarci sopra un po' e poi vedo.. pare che la questione sia tutta sul fatto ke io lavoro con Win64 mentre JMF è a 32 bit!!

    GRAZIE ANCORA AD ENTRAMBI PER IL VOSTRO AIUTO!!!
    Life is too short to spend it hoping or crying...JUST LIVE IT!

  9. #9
    In realtà ho scoperto che la soluzione proposta in quei post funziona se compili e lanci da riga di comando.. mentre se fai il tutto da BlueJ oppure da Eclipse.. non funziona nulla...

    Farò altre prove e vedrò...
    Life is too short to spend it hoping or crying...JUST LIVE IT!

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Io utilizzo NetBeans, ho scaricato il JMF pack, ho scritto un programmino per la cam del portatile e mettendo i file dll sotto la cartella bin del JDK o sotto system32, mi va. Ora mi sono incuriosito e vorrei trovare un modo per mettere le dll in qualche cartella di un progetto e fargliele riconoscere per poter distribuire il file a terze parti che non hanno istallato il JMF.
    Secondo voi e' possibile?

    P.s. Dove avevi messo le dll?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.