Почему capture = "user" не меняет камеру моего телефона на лицевую? - PullRequest
11 голосов
/ 23 июня 2019

Я попробовал следующий атрибут capture, чтобы установить элемент input для выбора фронтальной камеры. user лицевая сторона, а environment лицевая сторона.

Однако во время экспериментов с Chrome (последняя версия) на мобильном устройстве (Pixel 1, последняя версия ОС) задняя камера по-прежнему выбрана.

Я использовал пример фрагмента:

<form action="server.cgi" method="post" enctype="multipart/form-data">
  <input type="file" name="image" accept="image/*" capture="user">
  <input type="submit" value="Upload">
</form>

(из https://w3c.github.io/html-media-capture/#the-capture-attribute)

Я могу изменить accept, чтобы потребовать video на моем телефоне, чтобы работали и другие атрибуты, но не атрибут capture.

РЕДАКТИРОВАТЬ : Использую последний браузер Android Chrome. На следующей странице подразумевается, что iOS и более старые версии Android Chrome не могут использовать capture в целом, но в противном случае могут использовать capture. https://caniuse.com/#search=html-media-capture

Ответы [ 3 ]

5 голосов
/ 22 июля 2019

Я сегодня клонировал хранилище хрома (2019-07-21).Затем я использовал ripgrep , чтобы получить список файлов, которые не содержат capture.После передачи этого списка в rm я удалил все каталоги, которые были либо пустыми, либо явно не относились к делу (например, телеметрия).Прохождение оставшихся ~ 50 файлов было относительно тривиальной задачей.

Надеемся, что команда Chrome найдет способ реализовать это в будущем, но в настоящее время нет никаких признаков того, что это поведение поддерживается в официальной документации, официальных сообщениях в блоге или в самом коде.

Я знаю, что это не тот ответ, который вы хотели бы услышать, но это факты, которые я нашел.

2 голосов
/ 21 июля 2019

Будет ли Chrome специально препятствовать правильной работе кода? Я предлагаю использовать другой браузер, такой как Firefox, чтобы проверить эту теорию. Если это удастся в Firefox, то простой ответ: Chrome еще не реализовал его.

0 голосов
/ 24 июля 2019

Вот некоторые тесты, я включил пользовательский агент:

Не работал с:

  • Android Chrome: Mozilla / 5.0 (Linux; Android6.0; Ilium X510) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 75.0.3770.143 Mobile Safari / 537.36
  • Android Firefox: Mozilla / 5.0 (Android 6.0; Мобильный; rv: 68.0) Gecko / 68.0 Firefox /68.0

Работал с:

  • IPhone Chrome: Mozilla / 5.0 (iPhone; процессор iPhone OS 12_3, как Mac OS X) AppleWebKit / 605.1.15 (KHTML, как Gecko) CriOS / 75.0.3770.103 Mobile / 15E148 Safari / 605.1
  • iPhone Safari: Mozilla / 5.0 (iPhone; CPU iPhone OS 12_3_1, как Mac OS X) AppleWebKit / 605.1.15 (KHTML,как Gecko) Версия / 12.1.1 Mobile / 15E148 Safari / 604.1

В заключение:

  • Все протестированные навигаторы iPhone отображают вид с передней камерыкогда захват сделан пользователем, и вид сзади камеры, если это среда.
  • Оба протестированных Android-навигатора всегда отображалиmera view.

Таким образом, независимо от информации в принятом ответе, это не проблема браузера.Было бы полезно, если бы оно работало корректно с устройством Android и конкретным браузером.

Я надеюсь, что другие люди смогут делиться тестами на своих устройствах Android, в частности на рабочих, отображая вид с передней камеры во время тестирования захвата =значение атрибута "пользователь".

...