2014-04-25 13 views
12

Czy można dowiedzieć się, czy użytkownik ma kamerę internetową, czy nie korzysta tylko z JavaScript? Nie chcę używać żadnej wtyczki do tego.Sprawdź, czy użytkownik ma kamerę internetową lub nie używa JavaScriptu?

+0

http://stackoverflow.com/questions/20641213/how -can-i-check-if-user-has-a-webcam-or-not –

+0

@DhavalMarthak Nie chcę używać żadnych pluginów. Chcę sprawdzić używając tylko javacript. – Jimit

+1

Następnie Ty ** nie możesz ** –

Odpowiedz

16

Można użyć nowego API HTML5, by sprawdzić, czy daje uprawnienia do korzystania z kamery internetowej. W końcu, jeśli odmówią one pozwolenia, mogą nie mieć kamery z perspektywy kodu.

Zobacz navigator.getUserMedia().

EDIT:

navigator.getMedia = (navigator.getUserMedia || // use the proper vendor prefix 
         navigator.webkitGetUserMedia || 
         navigator.mozGetUserMedia || 
         navigator.msGetUserMedia); 

navigator.getMedia({video: true}, function() { 
    // webcam is available 
}, function() { 
    // webcam is not available 
}); 
+1

getUserMedia() nie działa już w niezabezpieczonych źródłach. Aby skorzystać z tej funkcji, należy rozważyć zmianę aplikacji na bezpieczne źródło, takie jak HTTPS. Więcej informacji można znaleźć na stronie https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins. –

3

Można sprawdzić, czy użytkownik ma kamerę za pomocą tej wtyczki: http://www.xarg.org/project/jquery-webcam-plugin/

if(webcam.getCameraList().length == 0){ 
    alert('You don\'t have a web camera'); 
} 

zaczerpnięte z tutaj: How can I check if user has a webcam or not?

Edit: Widzę, że zaktualizowane pytanie powiedzieć, że don” t chcesz użyć wtyczki. W tym przypadku, można spróbować użyć getUserMedia API:

function success(stream){ 
    // The success function receives an argument which points to the webcam stream 
    document.getElementById('myVideo').src = stream; 
} 

function error(){ 
    alert("No webcam for you, matey!"); 
} 

if (navigator.getUserMedia) { 
    navigator.getUserMedia({video:true, audio:false}, success, error); 
} else { 
    error(); 
} 

Źródło: http://www.iandevlin.com/blog/2012/06/html5/filtering-a-webcam-using-getusermedia-and-html5-canvas

1

nie ma sposobu, można odczytać aktualne ustawienia przeglądarki. jedyną rzeczą, jaką możemy zrobić, to starać się uzyskać dostęp do kamery/mikrofonu i zobaczyć, czy jesteśmy w stanie uzyskać dostęp do urządzenia jak ...

navigator.getMedia({video: true}, function() { 
    // webcam is available 
}, function() { 
    // webcam is not available 
}); 

BUT **** Ważne jest, aby pamiętać, tutaj, jeśli zastosuj to podejście, a następnie pamiętaj, że ...

Pamiętaj też, że musisz używać HTTPS do korzystania z kamery/mikrofonu, a wyświetli się okno z prośbą o pozwolenie i przyciski blokujące TYLKO RAZ, NOT ponownie zobacz to uprawnienie popup jako HTTPS zapisz zezwolenie.

Jedynym sposobem, aby dostać to uprawnienie okienko znowu jest:

  1. wyczyścić pamięć podręczną i
  2. Resetowanie ustawień przeglądarki
  3. otworzyć nową instancję przeglądarki.

FYI ... Nie można manipulować konkretne ustawienie przeglądarki przy użyciu JavaScript Więc nie wydarzenie iść tamtędy, chyba że masz czas do zabicia

Powiązane problemy