Обнаружить поддержку браузера для HTML Media Capture


Как я могу обнаружить поддержку браузера для 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

Ответ 1

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

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

Этот комментарий с 2012 года по запросу для реализации этой функции в Firefox четко гласит, что:

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

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

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

Ответ 2

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

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