2016-01-21 5 views
2

Вчера я начал работать с HTML5 Autoplay, а также добавил HTML5 Tag aka Субтитры.Почему относительный путь пути не отображается HTML5 субтитры

У меня возникли проблемы с пониманием того, почему, когда я играю образец видео * .mp4, он может отображать субтитры через относительный путь (файл: ///Users/user/Desktop/test.html), но если Я запускаю файл через Pycharm, например, он создает этот путь к файлу (http://localhost:63343/Desktop/test.html) в браузере и загружает субтитры просто отлично.

Так что мне интересно, есть ли способ решить мою проблему. Как загрузить субтитры по абсолютному пути (файл: ///Users/user/Desktop/test.html). Есть что-то, чего я здесь не хватает?

Я использую Google-хром в качестве веб-браузера.

Обновление: Я пытался отладить мою веб-страницу, и у меня такая же ошибка, как и Crossorigin errors when loading VTT file. Там, где одни люди говорят, что они смогли решить эту проблему на Disable same origin policy in Chrome. Я попытался перезапустить мой браузер следующим образом (open -a Google\ Chrome --args --disable-web-security), но это не имело никакого значения для моей проблемы.

Обновление 2: Я просто протестировал ту же проблему на альтернативном браузере Safar (версия 9.0.2 (11601.3.9)). В Safari я могу видеть субтитры с файлом (файл: ///Users/user/Desktop/test.html) и с (http://localhost:63343/Desktop/test.html) видео не отображается.

С Google-Chrome (версия 47.0.2526.106 (64-разрядная версия)) Я могу воспроизводить видео в обоих направлениях, но я могу видеть только субтитры (http://localhost:63343/Desktop/test.html).

Дальнейший поиск в Интернете помог мне найти CORS settings attributes, где пользователь может установить свойство crossOrigin либо (анонимным), либо (use-credentials). Я также пробовал это, результатом стал черный экран в видео.

В заключение я считаю, что проблема с безопасностью, а не проблема с файлом пути.

Пример test.html кода:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Sample of video with vtt file</title> 
</head> 
<body> 
<video id="video" controls preload="metadata" width="350" height="250" autoplay> 
    <source src="SampleVideo.mp4" type="video/mp4"> 
    <source src="SampleVideo.ogg" type="video/ogg"> 
    <track label="English" kind="subtitles" srclang="en" src="subtitles-en.vtt" default> 
</video> 
</body> 
</html> 

Пример кода файла субтитров-en.vtt:

WEBVTT 

Introduction 
00:00:00.000 --> 00:00:02.000 
Wikipedia is a great adventure. It may have 
its shortcomings, but it is the largest collective 
knowledge construction endevour 

Disclaimer 
00:00:02.000 --> 00:00:05.000 
This is just a track demo using VTT 

ответ

1

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

+0

Я открыт для любых предложений, есть ли другой способ? – Thanos

+0

Вам нужно загрузить их таким образом? Не может ли он работать на веб-сервере? –

+0

Это хороший вопрос, но причина, по которой я хочу протестировать их локально, заключается в том, что я планирую сохранить их также локально на устройстве Android. Поэтому, к сожалению, они должны быть в состоянии работать локально. – Thanos