2013-06-12 27 views
10


Jak wykryć obsługę przeglądarki dla HTML Media Capture *?Wykryj obsługę przeglądarek HTML Media Capture


Tradycyjny sposób testowania czy atrybut jest obsługiwany nie wydają się działać na niektórych urządzeniach (testowane na iPada i Google Nexus):

var elm = document.createElement(input); 
    if (capture in elm) { 
    return true; 
    } 


Jest testem dla modernizr ale nie wydają się być wiarygodne (to wykorzystuje tę samą zasadę): https://github.com/Modernizr/Modernizr/pull/909

__

(*) Więcej w fo na HTML Mediów Przechwytywanie:

http://www.w3.org/TR/html-media-capture/
http://www.html5rocks.com/en/tutorials/getusermedia/intro/#toc-round1

+0

Ponieważ powyższy test nie działa, najpierw powinienem dołączyć element do ciała i ustawić typ do akceptacji mediów (tj. atrybuty 'type =" file "', 'accept =" image/* "', 'accept =" video/* "', etc), jeśli to się nie powiedzie, prawdopodobnie pobrałbym tylko ciąg znaków User Agent i testowanie jeśli przeglądarka jest wersją, która ma wsparcie. Ponadto, nie masz żadnych notowań wokół 'input' lub' capture', więc błąd będzie się pojawiał, ponieważ będą niezdefiniowanymi zmiennymi. –

+0

Na to pytanie odpowiedziałeś: http://stackoverflow.com/questions/12199736/detect-html5-media-capture-api-support – mbejda

Odpowiedz

0

Ta forma przechwytywania mediów w przeglądarkach jest nieaktualne, przestarzałe i nieaktualne. Nowy standard, getUserMedia, można wykryć tak:

function hasGetUserMedia() { 
    return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || 
     navigator.mozGetUserMedia || navigator.msGetUserMedia); 
} 
+3

Czy możesz udostępnić miejsce, w którym jest napisane, że przechwytywanie HTML Media jest przestarzałe i przestarzałe? – mscdex

+2

Dodam, że jest nieprawdopodobne, że jest przestarzały, ani przestarzały, ani przestarzały, ponieważ nigdy nie wyszedł z wersji roboczych. API strumienia i przechwytywania HTML MEDIA są różne, Pierwszy zapewnia strumień, gdy później dostarcza Plik. – Kaiido

1

Mam nadzieję, że się mylę, ale wydaje się, że nie będzie w stanie dokonać tego wykrywania ...

last paper o tym HTML MEDIA przechwytywania API (która jest inna niż API Streaming/getUserMedia), jak zostały opublikowane w ubiegłym roku (2014), i nigdy nie wyszedł z przeciągami ...

Ten comment od 2012 roku, na wniosek w celu wyraźnego wdrożenia tej funkcji w Firefoksie stwierdza, że:

[T] tutaj nie ma rzeczywistej potrzeby wdrożenia tego. Powinien zostać udostępniony za darmo w systemie Android Intent. Powinniśmy po prostu wezwać ACTION_IMAGE_CAPTURE/ACTION_VIDEO_CAPTURE.

Oznacza to, że funkcja ta pochodzi od systemu operacyjnego bezpośrednio, a my jako programiści nie będą miały żadnego sposobu, aby wiedzieć, czy to będzie dostępne lub nie ...

Więc jedynym sposobem na wykrycie ta funkcja wydaje się być dopasowaniem UserAgent przeciwko znanym urządzeniom wspierającym ...