iPhone автоматически конвертирует файлы HEIC/HEVC при использовании — как этого избежать?

Вопрос или проблема

Я работаю над веб-приложением, которое позволяет пользователям загружать изображения и видео с помощью элемента html <input type="file">. Однако, когда пользователи iPhone выбирают файлы из Библиотеки Фото, iOS автоматически конвертирует изображения HEIC в JPEG и видео HEVC в MP4. Эта конверсия приводит к медленной выборке файлов и добавляет ненужные накладные расходы, и пользователь застревает в окне выбора Библиотеки Фото, пока iOS не завершит конвертацию всего в более “совместимый формат”.

Я пытался полностью убрать атрибут accept, надеясь, что это предотвратит конвертацию, но проблема остается. Я хотел бы найти способ принять родные форматы iPhone (HEIC/HEVC) без автоматической конвертации iOS. Я хочу, чтобы пользователи могли загружать свои файлы без того, чтобы устройство принуждало их к изменениям формата.

Что я пробовал:

Использование пустого атрибута accept: Удаление атрибута accept предотвращает ограничения на типы файлов, но iPhone все равно конвертирует файлы HEIC/HEVC при выборе из Библиотеки Фото.
Установка accept=”image/heic, video/hevc”: Я пытался явно принять эти форматы, но Safari/iOS продолжает конвертировать файлы.
Фильтрация файлов после выбора: Я попытался отфильтровать файлы на стороне клиента, но iPhone все равно преобразует их перед выбором.

Что я хочу: Я хочу, чтобы iPhone перестал конвертировать файлы HEIC и HEVC и загружал их в оригинальном формате. Я предпочел бы обрабатывать любые необходимые преобразования на стороне сервера.

Вопрос:

Существует ли способ сказать iOS не конвертировать файлы автоматически в процессе выбора?
Может ли атрибут accept элемента input (или любой другой подход) предотвратить эту автоматическую конвертацию?
Есть ли какие-либо обходные пути, или мне просто нужно заранее предупредить пользователя, что исчезновение окна Библиотеки Фото займет некоторое время, так как iOS выполняет преобразования.

ПРИМЕЧАНИЕ: На iOS я могу настроить формат выбора Библиотеки Фото с “Автоматически” (что выполняет конвертацию) на “Текущий”. Это работает и заставляет iOS не выполнять никаких конвертаций, однако это требует от пользователя выполнения дополнительных шагов настройки на сайте – чего я также пытаюсь избежать, если это возможно.

Среда:

Устройства: iPhone (iOS 14+)
Браузеры: Safari на iOS
Форматы: HEIC (изображения), HEVC (видео)

Ответ или решение

Вопрос, который вы подняли, касается автоматической конвертации файлов HEIC и HEVC на устройствах iPhone при использовании элемента <input type="file"> в веб-приложении. Действительно, эта проблема может быть серьезным препятствием для пользователей, которые хотят загружать файлы в их оригинальном формате. Позвольте мне изложить несколько решений и рекомендаций по этому поводу.

1. Краткое объяснение проблемы

При выборе изображений или видео из библиотеки фотографий на iPhone, система iOS автоматически конвертирует файлы HEIC в JPEG и HEVC в MP4. Эта конвертация необходима для обеспечения совместимости с другими устройствами и приложениями, но она действительно может замедлить процесс выбора файлов и вызвать неудобства.

2. Настройки iOS

Вы уже упомянули, что в iOS можно изменить настройки форматов фотографии и видео. Если пользователь вручную установит режим "Настоящий" вместо "Автоматический", то конвертация не произойдет. Однако, как вы и заметили, это требует дополнительной настройки, и ваш приоритет — минимизировать усилия со стороны пользователя.

3. Подходы для организации загрузки файлов

К сожалению, на данный момент нет программного способа предотвратить автоматическую конвертацию на уровне веб-приложения. Однако вы можете рассмотреть следующие альтернативные подходы:

A. Используйте JS SDK для взаимодействия с камерой

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

B. Предупреждение пользователей

В качестве временного обходного решения, вы можете информировать пользователей о необходимости изменения настроек формата в iOS. Это может быть сделано через модальное окно или уведомление, которое объясняет процесс:

"Для повышения скорости загрузки файлов мы рекомендуем изменить настройки формата в вашем iPhone на ‘Настоящий’. Это предотвратит автоматическую конвертацию HEIC и HEVC файлов в JPEG и MP4."

C. Серверная конвертация

Так как вы упомянули, что готовы обрабатывать конвертацию на серверной стороне, убедитесь, что ваша серверная часть способна принимать HEIC и HEVC файлы. Это позволит вам минимизировать влияние на пользователей при загрузке. При наличии возможности, можно реализовать обратную связь, чтобы пользователи знали, какой формат был успешно загружен.

Заключение

К сожалению, на текущий момент нет значительных способов обойти встроенные функции iOS, которые обрабатывают автоматическую конвертацию. Однако предложенные подходы могут помочь улучшить пользовательский опыт. Будьте внимательны к обратной связи от пользователей и рассматривайте возможность доработки интерфейса для минимизации любых недоразумений или затруднений, связанных с загрузкой файлов.

Если у вас есть дополнительные вопросы или нужны уточнения по предложенным методам, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...