2013-03-07 12 views
6

Próbuję zrobić najprostszego odtwarzacza wideo HTML5 w świecie:HTML5 tytuły utworów nie wykazujące

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>ST Media Player</title> 
    </head> 
    <body> 
     <video id="player" src="http://video-js.zencoder.com/oceans-clip.mp4" controls> 
      <track kind="captions" src="_tracks/test.vtt" default> 
     </video> 
    </body> 
</html> 

Gotowe!

Dlaczego więc gracz rozpoznaje napisy, ale ich nie pokazuje? Próbowałem teraz różnych plików wideo i napisów.

Odpowiedz

12

Znacznik śledzenia działa, gdy treść jest wyświetlana na serwerze internetowym. Nie zapomnij dodać konfiguracji, która ustawia typ MIME jako plik vtt. Tu jest mój przykład, który działa na IIS:

<video> 
    <source src="video.mp4" type="video/mp4" /> 
    <track src="video.en.vtt" kind="subtitles" 
     label="English Subtitles" srclang="en" /> 
</video> 

dla IIS web.config Plik:

<configuration> 
    <system.webServer> 
     <staticContent> 
     <remove fileExtension=".vtt" /> 
     <mimeMap fileExtension=".vtt" mimeType="text/vtt" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

Dla Tomcat Server pliku WEB-INF/web.xml:

<web-app> 
    <mime-mapping> 
    <extension>vtt</extension> 
    <mime-type>text/vtt</mime-type> 
    </mime-mapping> 
</web-app> 

Dla Serwer Apache dodaj plik .htaccess do swojego katalogu internetowego i napisz ten wiersz, aby dodać rodzaj napisów podtytułu:

AddType text/vtt .vtt 
+0

Gdzie mogę zmienić config na mój serwer WWW? –

+0

@ThomasTeilmann: Czy Twój serwer internetowy IIS? jeśli tak, powinieneś umieścić plik web.config w folderze głównym, skopiuj i wklej do niego moją konfigurację. – Canavar

+0

co z serwerem apache? – bakriawad

1

Upewnij się, że plik jest zapisany jako UTF-8, aby upewnić się, że znaki specjalne będą wyświetlane poprawnie

+0

Typ MIME powinien mieć zestaw znaków:

0

Nie mam na to odpowiedzi, ale doszedłem do wniosku, że jest to problem z ustawieniami serwera. Podpisy na IE działają dobrze na IIS, ale nie na serwerze Nginx podczas przeglądania z IE jako klientem.

+1

Ponieważ masz odpowiednie i prawdopodobne pomocne informacje ale nie jest to odpowiedź, sugerowałbym umieszczenie tej informacji jako komentarza do pytania zamiast odpowiedzi. Dziękuję Ci! –

+1

Przeprosiny. Wykorzystanie do Stack Overlow – pelicanpaul

0

Musisz ustawić mode obiektu do textTracks „pokazywanie”:

var video = document.querySelector('YOUR_VIDEO_SELECTOR'); 

video.addEventListener('load', function() { 
    var tracks = video.textTracks[0]; 
    tracks.mode = 'showing'; 
}); 
Powiązane problemy