-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayer.mjs
28 lines (22 loc) · 897 Bytes
/
player.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { parseSrt, serializeSrt, fixSubtitles } from './subtitles.mjs';
export async function player(name) {
document.title = name;
const audioUrl = `content/${name}.mp3`;
const subtitleUrl = `content/${name}.srt`;
const metadataUrl = `content/${name}.json`;
const audio = new Audio(audioUrl);
const metadata = await fetch(metadataUrl).then(r => {
if (r.ok) return r.json();
return {
bindings: ['moderator', 'A', 'B'],
speakers: {
'moderator': { color: 'gray', subtitles: [] },
'A': { color: 'cyan', subtitles: [] },
'B': { color:'magenta', subtitles: [] },
}
};
});
const subtitleSrt = await fetch(subtitleUrl).then(r => r.text());
const subtitles = parseSrt(subtitleSrt);
return { audio, subtitles, metadata };
}