Sunteți pe pagina 1din 2

Capturarea de imagini de la o camera web folosind Java Media Framework

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 .

În acest mod se pot afla mai multe informatii despre dispozitiv:

Majoritatea camerelor web suporta un numar de formate diferite, rezolutia,


adâncimea 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.
În momentul în 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 în forma de push stream-uri care trec in
obiecte buffer. PushBufferStream-ul ofera o modalitate de accesare a buffere-lor care
trec prin stream, în acest caz, fiecare buffer reprezinta un frame de la camera web.
În 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 în imagini AWT, care pot fi
manipulate sau afisate.