CAPTURAREA DE IMAGINI DE LA O CAMERA WEB FOLOSIND JAVA MEDIA FRAMEWORK
calendar_month 26 Ian 2007, 00:00
Pentru a folosi un anumit dispozitiv media, primul lucru de care este nevoie este numele cu care JMF API se refera la acesta. Pentru aflarea acestuia se porneste aplicatia JMStudio, care este parte din pachetul cu care vine JMF API. Odata ce aplicatia ruleaza, se selecteaza Capture Devices din meniu. Astfel vor fi prezentate optiunile pentru configurarea dispozitivelor video si audio. Pe o platforma Microsoft Window, un nume tipic pentru o camera web ar fi: vfw:Creative WebCam NX Pro (VFW):0 .
Majoritatea camerelor web suporta un numar de formate diferite, rezolutia, adancimea culorii si numarul de frame-uri pe secunda pot fi modificate. Formatele suportate de un anumit dispozitiv pot fi determinate folosind metoda getFormats din clasa CaptureDeviceInfo. Din aceasta lista pot fi selectate formatele apropiate.
Pentru a obtine o imagine de la o camera web, este necesar un obiect JMF PushBufferStream. Pentru acesta, este necesar un obiect MediaLocator, care descrie locatia continutului media.
Pasul urmator este crearea unei DataSource folosind metoda createDataSource din clasa Manager. Clasa Manager este un punct general de acces oferit de JMF pentru obtinerea resurselor dependente de sistem. JMF API permite folosirea DataSource pentru a afisa informatia media sau pentru a o schimba (folosind un procesor).
Pentru a crea un obiect procesor se foloseste clasa Manager, si se transmite ca argument DataSource.
Pentru a folosi acest procesor, trebuie sa fie in stare de realizat.
In momentul in care procesorul este gata, se poate accesa PushBufferDataSource care poate oferi un PushBufferStream. PushBufferDataSource este o forma speciala de DataSource, care se ocupa cu datele in forma de push stream-uri care trec in obiecte buffer. PushBufferStream-ul ofera o modalitate de accesare a buffere-lor care trec prin stream, in acest caz, fiecare buffer reprezinta un frame de la camera web.
In final se obtine un PushBufferStream (camStream) din care se pot citi obiecte Buffer care reprezinta frame-uri de la camera web. Se creeaza un obiect BufferToImage care permite convertirea acestor buffere in imagini AWT, care pot fi manipulate sau afisate.
Noutati