728x90
var http = new XMLHttpRequest();
http.open('HEAD', vttsrc, false);
http.send();
// 자막은 항상 1개만 사용한다
videoJsOption.tracks = [];
console.log(http.status);
if (http.status == "200") {
//자막파일이 있음, 자막 기능 활성화
if (player.options_.tracks[0] != null) {
player.removeRemoteTextTrack(player.textTracks_.tracks_[0]);
player.addRemoteTextTrack({
kind: 'captions',
srclang: 'ko',
label: "자막"+index,
src: vttsrc
});
} else {
player.options_.tracks.push({src: vttsrc,kind:'subtitles' ,srclang:'ko',label:"자막"+index});
}
} else {
if (player.options_.tracks[0] != null) {
player.removeRemoteTextTrack(player.textTracks_.tracks_[0]);
}
}
먼저 서버 저장소에 자막파일이 있는지 확인한다.
200이면 있고, 404면 없는것...
그리고 0번째 트렉에 아무것도 없으면 push하고, 있다면
삭제한 뒤, addRemoteTextTrack() 을 사용하여 새로운 자막을 추가해준다.
이게 영상은 push로 0번부터 n번까지 영상이 저장되는데
이것에 맞춰서 자막을 push 해버리면, 영상의 자막 버튼을 눌렀을 때 모든 자막 목록이 출력된다.
때문에, 영상을 재생할 때 마다 이 영상에 맞는 자막파일이 있는지 확인하고 추가해주는 방식을 채택했다.
728x90
'Dev's > Web' 카테고리의 다른 글
[Dev's] 스프링 스케쥴러 설정 시, 변수값 넣어서 동적생성하기 (0) | 2022.01.06 |
---|---|
[Dev's] Spring CustomViewResolver 사용하기 (0) | 2021.12.06 |
[Dev's] javascript / jquery submit 방법 (0) | 2021.11.11 |
[Dev's] AWS 쓰다가 서버가 터질 경우 대처 방법? (0) | 2021.07.12 |
[Dev's] 리눅스 컴포저 사용법 포스팅 (0) | 2021.07.12 |