Видео HTML5 не воспроизводится с crossOrigin=anonymous

Я пытаюсь интегрировать видеоплеер HTML5 в свое приложение. Мои источники видео и подпись (для тега дорожки) взяты из другого домена.

Когда я использую

<video crossOrigin="anonymous">
   <source src="domain1Url"> ... </source>
   <track kind="captions" label="English Captions" src="domain2Url" srclang="en" default>
</video>

Весь приведенный выше код отлично работает для меня в небезопасном режиме Chrome (отключена веб-безопасность). В обычном Chrome, если я не укажу атрибут crossOrigin, я получаю сообщение об ошибке

Текстовая дорожка из источника «...» заблокирована для загрузки: не в том же источнике, что и документ, и родительский элемент дорожки не имеет атрибута «перекрестного происхождения». Таким образом, доступ к источнику 'http://localhost...' запрещен.

После указания атрибута crossOrigin API подписи успешно извлекает данные. Но видео не воспроизводится. Может ли кто-нибудь предложить, как я могу воспроизвести видео с установленным атрибутом crossOrigin?


person Adarsh Konchady    schedule 24.01.2017    source источник
comment
stackoverflow.com/questions/39294190/ может иметь значение   -  person sideshowbarker    schedule 24.01.2017


Ответы (1)


Оказалось, что после установки crossorigin="anonymous" мне также нужно было включить CORS для URL-адресов источника видео. URL-адрес видео должен возвращать следующий заголовок ответа:

Access-Control-Allow-Origin: * (или домен в белый список)

Использование этого расширения помогло мне смоделировать решение проблемы: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

person Adarsh Konchady    schedule 24.01.2017
comment
Но если вы откроете страницу в другом браузере или устройстве, видео не будет воспроизводиться!! - person Adam; 15.06.2018
comment
Почему нет? Заголовки CORS работают во всех основных браузерах. - person Adarsh Konchady; 27.04.2021