Jakiś czas temu Bruce Lawson pisał na dev.opera o możliwości uzyskania dostępu do kamery internetowej (link). Na ostatnim meet.js summit m.in. o tym samym mówił Patrick H. Lauke, który zaprezentował do tego działające przykłady. Czyżby dni flasha były już policzone?
Support
Zanim pokaże jak dobrać się do kamery, kilka słów o tym gdzie testować przykład. W chwili obecnej (t.j. połowa stycznia) tylko Opera, w wydanej specjalnie na te potrzeby wersji, daje nam możliwość dostępu do kamery.
Dostęp do kamery
By uzyskać dostęp do kamery internetowej, należy wywołać funkcję getUserMedia, która przyjmuje dwa wymagane parametry i trzeci opcjonalny. Pierwszy parametr to informacja do jakich urządzeń chcemy dać dostęp przeglądarce. Poniższa linijka umożliwia nam dostęp wyłącznie do mikrofonu:
{audio: true}
Aby otrzymać obraz z kamery wystarczy jako parametr przekazać poniższy obiekt:
{video: true}
Oczywiście, jeżeli interesuje nas dostęp jednocześnie do mikrofonu i kamery, wystarczy przekazać obiekt zawierający obydwie powyższe właściwości.
Jako drugi parametr przekazujemy funkcję, która zostanie wywołana po tym jak użytkownik zezwoli nam na działanie z kamerką. Trzecim parametrem jest również funkcja, która tym razem zostanie wywołana w przypadku wystąpienia jakiegoś błędu lub po odrzuceniu przez użytkownika prośby o dostęp do swoich urządzeń. Cała metoda wygląda tak:
navigator.getUserMedia({audio: true; video: true}, success, error);
Przykład
Skoro uzyskaliśmy już dostęp do kamerki, wyświetlmy teraz obraz z niej na naszej stronie. Do tego posłuży nam tag video:
<video id="camera" autoplay></video>
Teraz wystarczy przekazać obraz z kamerki do funkcji success i przypisać go do obiektu video:
if(navigator.getUserMedia){
navigator.getUserMedia({video: true}, function(stream){
var video = document.getElementById("camera");
video.src = stream;
});
}
Link do przykładu
Podsumowanie
To na razie wszystko. Teraz pozostaje śledzić rozwój dokumentacji i oczekiwać kolejnych przeglądarek dających możliwość dostępu do kamery internetowej. Na koniec zostawiam was z pytaniem: czy jest to kolejny gwóźdź do trumny flasha?

Zostaw komentarz