Обнаружить поддержку браузера для захвата мультимедиа HTML


Как узнать, поддерживает ли браузер HTML Media Capture*?


Традиционный способ проверки поддержки атрибута не работает на некоторых устройствах (проверено на iPad и Google Nexus):

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


Есть тест для Modernizr, но он не кажется надежным (используется тот же принцип): https://github.com/Modernizr/Modernizr/pull/909

__

(*) Дополнительная информация о HTML Media Capture:

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


person Luis Evrythng    schedule 12.06.2013    source источник
comment
Поскольку этот тест, который у вас есть выше, не работает, сначала я бы добавил элемент в тело и установил тип для приема носителя (т. е. атрибуты type="file", accept="image/*", accept="video/*" и т. д.), если это не удается, я бы, вероятно, пошел просто просматривая строку агента пользователя и проверяя, поддерживает ли браузер версию. Кроме того, у вас нет кавычек вокруг ваших input или capture, поэтому будет ошибка, потому что они будут неопределенными переменными.   -  person    schedule 12.06.2013
comment
На вопрос был дан ответ здесь: stackoverflow.com /вопросы/12199736/   -  person mbejda    schedule 27.04.2015


Ответы (2)


Надеюсь, я ошибаюсь, но, похоже, мы не сможем провести это обнаружение...

последний документ об этом HTML MEDIA Capture API (который отличается чем Streaming/GetUserMedia API), как было опубликовано в прошлом году (2014) и никогда не исчезало из черновиков...

В этом комментарии от 2012 года к просьбе реализовать эту функцию в Firefox четко говорится это :

[T] здесь нет реальной необходимости реализовывать это. Это должно быть бесплатно с системой Android Intent. Мы должны просто вызвать намерение для ACTION_IMAGE_CAPTURE/ACTION_VIDEO_CAPTURE.

Это означает, что эта функция поступает непосредственно из ОС, и что у нас, как у разработчиков, нет никакого способа узнать, будет ли она доступна или нет...

Таким образом, единственный способ обнаружить эту функцию, по-видимому, - это совпадение UserAgent с известными поддерживающими устройствами...

person Kaiido    schedule 13.09.2015

Эта форма захвата мультимедиа в браузерах устарела, устарела и устарела. Новый стандарт getUserMedia можно обнаружить следующим образом:

function hasGetUserMedia() {
   return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
        navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
person RickyAYoder    schedule 13.07.2015
comment
Можете ли вы поделиться, где говорится, что HTML Media Capture устарел? - person mscdex; 02.09.2015
comment
Я бы добавил, что маловероятно, чтобы он устарел, не устарел и не устарел, поскольку он никогда не выходил из черновиков. потоковый API и HTML MEDIA Capture отличаются друг от друга. Первый обеспечивает поток, тогда как последний предоставляет файл. - person Kaiido; 12.09.2015