Bogdosarov
@Bogdosarov
Пишу игры в playtech

Как в Safari получить данные с canvas на котором прорисован кадр из видео?

Есть задача - нарисовать кадр с видео и получить данные конкретного пикселя.
Для получения данных использую:
context.drawImage(video, 0, 0, width, height);
context.getImageData(10, 10, 1, 1);

В chromе и firefox все отрабатывает корректно - получаю данные по пикселю.
getImageData(10, 10, 1, 1); не работает если запустить в safari - валит ошибку
SecurityError: DOM Exception 18: An attempt was made to break through the security policy of the user agent.
Unable to get image data from canvas because the canvas has been tainted by cross-origin data.

Дело в том что в видео присутствует хедер access-control-allow-origin:*
Существует ли другой способ как получить данные по кадру с видео кроме прорисовки его на канвас?
И как можно обойти SecurityError в safari?
  • Вопрос задан
  • 428 просмотров
Пригласить эксперта
Ответы на вопрос 1
Bogdosarov
@Bogdosarov Автор вопроса
Пишу игры в playtech
Ответ такой: на данный момент роспарсить видео в сафари с друго домена невозможно. В сафари есть дефект на эту тему, который будет пофикшен с выходом iOS 10. Так что единственный выход - генерировать на сервере скриншот и передавать в виде изображения.
Полезные ссылки с описанием дефекта:
https://openradar.appspot.com/24641824
https://forums.developer.apple.com/message/113161#...
https://bugs.webkit.org/show_bug.cgi?id=135379
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы