Skip to content

Commit c4f618a

Browse files
committedFeb 13, 2025·
Merge branch 'master' into titan-subs
2 parents 9574ec6 + 58904a9 commit c4f618a

File tree

2 files changed

+7
-31
lines changed

2 files changed

+7
-31
lines changed
 

‎src/TitanVideo/TitanVideo.js

+1-27
Original file line numberDiff line numberDiff line change
@@ -41,48 +41,39 @@ function TitanVideo(options) {
4141
};
4242
videoElement.ontimeupdate = function() {
4343
onPropChanged('time');
44-
onPropChanged('buffered');
4544
};
4645
videoElement.ondurationchange = function() {
4746
onPropChanged('duration');
4847
};
4948
videoElement.onwaiting = function() {
5049
onPropChanged('buffering');
51-
onPropChanged('buffered');
5250
};
5351
videoElement.onseeking = function() {
5452
onPropChanged('time');
5553
onPropChanged('buffering');
56-
onPropChanged('buffered');
5754
};
5855
videoElement.onseeked = function() {
5956
onPropChanged('time');
6057
onPropChanged('buffering');
61-
onPropChanged('buffered');
6258
};
6359
videoElement.onstalled = function() {
6460
onPropChanged('buffering');
65-
onPropChanged('buffered');
6661
};
6762
videoElement.onplaying = function() {
6863
onPropChanged('time');
6964
onPropChanged('buffering');
70-
onPropChanged('buffered');
7165
};
7266
videoElement.oncanplay = function() {
7367
onPropChanged('buffering');
74-
onPropChanged('buffered');
7568
};
7669
videoElement.canplaythrough = function() {
7770
onPropChanged('buffering');
78-
onPropChanged('buffered');
7971
};
8072
videoElement.onloadedmetadata = function() {
8173
onPropChanged('loaded');
8274
};
8375
videoElement.onloadeddata = function() {
8476
onPropChanged('buffering');
85-
onPropChanged('buffered');
8677
};
8778
videoElement.onvolumechange = function() {
8879
onPropChanged('volume');
@@ -118,7 +109,6 @@ function TitanVideo(options) {
118109
time: false,
119110
duration: false,
120111
buffering: false,
121-
buffered: false,
122112
subtitlesTracks: false,
123113
selectedSubtitlesTrackId: false,
124114
subtitlesOffset: false,
@@ -241,20 +231,6 @@ function TitanVideo(options) {
241231

242232
return videoElement.readyState < videoElement.HAVE_FUTURE_DATA;
243233
}
244-
case 'buffered': {
245-
if (stream === null) {
246-
return null;
247-
}
248-
249-
var time = videoElement.currentTime !== null && isFinite(videoElement.currentTime) ? videoElement.currentTime : 0;
250-
for (var i = 0; i < videoElement.buffered.length; i++) {
251-
if (videoElement.buffered.start(i) <= time && time <= videoElement.buffered.end(i)) {
252-
return Math.floor(videoElement.buffered.end(i) * 1000);
253-
}
254-
}
255-
256-
return Math.floor(time * 1000);
257-
}
258234
case 'subtitlesTracks': {
259235
if (stream === null) {
260236
return [];
@@ -637,7 +613,6 @@ function TitanVideo(options) {
637613
onPropChanged('time');
638614
onPropChanged('duration');
639615
onPropChanged('buffering');
640-
onPropChanged('buffered');
641616
if (videoElement.textTracks) {
642617
videoElement.textTracks.onaddtrack = function() {
643618
videoElement.textTracks.onaddtrack = null;
@@ -679,7 +654,6 @@ function TitanVideo(options) {
679654
onPropChanged('time');
680655
onPropChanged('duration');
681656
onPropChanged('buffering');
682-
onPropChanged('buffered');
683657
onPropChanged('subtitlesTracks');
684658
onPropChanged('selectedSubtitlesTrackId');
685659
onPropChanged('audioTracks');
@@ -766,7 +740,7 @@ TitanVideo.canPlayStream = function(stream) {
766740
TitanVideo.manifest = {
767741
name: 'TitanVideo',
768742
external: false,
769-
props: ['stream', 'loaded', 'paused', 'time', 'duration', 'buffering', 'buffered', 'audioTracks', 'selectedAudioTrackId', 'subtitlesTracks', 'selectedSubtitlesTrackId', 'subtitlesOffset', 'subtitlesSize', 'subtitlesTextColor', 'subtitlesBackgroundColor', 'subtitlesOutlineColor', 'subtitlesOpacity', 'volume', 'muted', 'playbackSpeed'],
743+
props: ['stream', 'loaded', 'paused', 'time', 'duration', 'buffering', 'audioTracks', 'selectedAudioTrackId', 'subtitlesTracks', 'selectedSubtitlesTrackId', 'subtitlesOffset', 'subtitlesSize', 'subtitlesTextColor', 'subtitlesBackgroundColor', 'subtitlesOutlineColor', 'subtitlesOpacity', 'volume', 'muted', 'playbackSpeed'],
770744
commands: ['load', 'unload', 'destroy'],
771745
events: ['propValue', 'propChanged', 'ended', 'error', 'subtitlesTrackLoaded', 'audioTrackLoaded']
772746
};

‎src/withHTMLSubtitles/withHTMLSubtitles.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,11 @@ function withHTMLSubtitles(Video) {
226226
selectedTrackId = selectedTrack.id;
227227
delay = 0;
228228

229-
function getSubtitlesData(track) {
230-
if (typeof track.url === 'string') {
231-
return fetch(track.url)
229+
function getSubtitlesData(track, isFallback) {
230+
var url = isFallback ? track.fallbackUrl : track.url;
231+
232+
if (typeof url === 'string') {
233+
return fetch(url)
232234
.then(function(resp) {
233235
if (resp.ok) {
234236
return resp.text();
@@ -252,7 +254,7 @@ function withHTMLSubtitles(Video) {
252254
}
253255

254256
function loadSubtitles(track, isFallback) {
255-
getSubtitlesData(track)
257+
getSubtitlesData(track, isFallback)
256258
.then(function(text) {
257259
return subtitlesConverter.convert(text);
258260
})

0 commit comments

Comments
 (0)
Please sign in to comment.