| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset='utf-8'> |
| <title>In-band chapter tracks.</title> |
| <script src="../video-test.js"></script> |
| <script src="../media-file.js"></script> |
| <script> |
| let tracks = { }; |
| var track; |
| window.addEventListener('load', async event => { |
| |
| findMediaElement(); |
| video.src = findMediaFile('video', '../content/multi-language-chapters'); |
| |
| await waitForEvent(video, 'canplaythrough'); |
| await testExpectedEventually('video.textTracks.length', 3, '==', 1000); |
| |
| let checkTrack = async (t, languageCode, languageName) => { |
| consoleWrite(''); |
| track = t; |
| await testExpectedEventually('track.cues.length', 6, '==', 1000); |
| testExpected('track.language', languageCode); |
| testExpected('track.kind', 'chapters'); |
| for (let i = 0; i < 6; i++) |
| testExpected(`track.cues[${i}].text`, `${languageName} Chapter ${i + 1}`); |
| } |
| |
| tracks = Array.from(video.textTracks); |
| tracks.sort((track1, track2) => track1.language > track2.language); |
| |
| tracks.forEach(track => track.mode = 'hidden'); |
| await checkTrack(tracks[0], 'en', 'English'); |
| await checkTrack(tracks[1], 'es', 'Spanish'); |
| await checkTrack(tracks[2], 'fr', 'French'); |
| |
| consoleWrite(''); |
| endTest(); |
| }); |
| |
| </script> |
| </head> |
| <body> |
| <video controls></video> |
| </body> |
| </html> |
| |