#ios #react-native #avfoundation #react-native-video #amazon-cloudfront
#iOS #react-native #avfoundation #реагировать-собственное-видео #amazon-cloudfront
Вопрос:
Я использую URL-адрес потоковой передачи из CloudFront.
Пример URL:https://d14nt81hc5bide.cloudfront.net/qyYj1PcUkYg2ALDfzAdhZAmb
На Android он работает нормально, но в iOS написано: domain = AVFoundationErrorDomain , код = -11828
В документе Apple код ошибки 11828 не распознан в формате averrorfileformat. Не удалось открыть носитель, поскольку он не в распознанном формате.
Может кто-нибудь подсказать, как исправить эту ошибку?
Комментарии:
1. Вы пробовали использовать другое видео? Этот URL, похоже, ничего не воспроизводит для меня, возможно, он действительно в нераспознанном формате / поврежден.
2. @mihai1990 поиграйте с медиаплеером vlc, он запускается
3. О, я думал, это видео. На самом деле это аудио в формате mp3. Я предполагаю, что это может быть вызвано отсутствием расширения .mp3 в URL.
4. в этом проблема …. но cloudfront не предоставляет мне расширение .mp3 .. знаете ли вы, как получить расширение .mp3 из url cloudfront? @mihai1990
5. Я не знаю об этом, извините.
Ответ №1:
AVFoundation может быть придирчивым, если URL-адрес или заголовок ответа не содержат информации о формате контейнера носителя ( mp4
, mov
, …), что имеет место в данном случае (нет «расширения файла» в URL-адресе и нет типа содержимого в заголовке ответа).
Другие медиа-библиотеки и проигрыватели, похоже, готовы просто начать загрузку, а затем угадать формат, проверяя входящие данные, вероятно, поэтому они работают в этом случае.
К сожалению, по крайней мере, насколько мне известно, нет (надежного) способа программно указать AVFoundation ожидаемый формат и продолжить с этим.
Ответ №2:
Как вы упомянули, эта ошибка возникает из-за того, что AVFoundation не может распознать ваш формат мультимедиа.
Попробуйте объявить свой mime-тип при загрузке медиафайлов на сервер
Подробнее о mime-типе здесь
дополнительная информация: Руководство по потоковому мультимедийному контенту AWS
Ответ №3:
У меня не было другого выбора, кроме как .mp3
прикрепить мой URL-адрес CloudFront. И тогда это работает для ios.