@stremio/stremio-video 0.0.67 → 0.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/TizenVideo/TizenVideo.js +16 -22
- package/src/VidaaVideo/VidaaVideo.js +27 -1
package/package.json
CHANGED
|
@@ -463,32 +463,26 @@ function TizenVideo(options) {
|
|
|
463
463
|
}
|
|
464
464
|
case 'selectedSubtitlesTrackId': {
|
|
465
465
|
if (stream !== null) {
|
|
466
|
-
if ((
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
}
|
|
473
|
-
disabledSubs = false;
|
|
466
|
+
if ((propValue || '').indexOf('EMBEDDED_') === -1 || !propValue) {
|
|
467
|
+
renderSubtitle(1, '');
|
|
468
|
+
disabledSubs = true;
|
|
469
|
+
onPropChanged('selectedSubtitlesTrackId');
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
474
472
|
|
|
475
|
-
|
|
473
|
+
var subtitlesTracks = getProp('subtitlesTracks');
|
|
474
|
+
var selectedSubtitlesTrack = subtitlesTracks
|
|
475
|
+
.find(function(track) {
|
|
476
|
+
return track.id === propValue;
|
|
477
|
+
});
|
|
476
478
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
return track.id === propValue;
|
|
481
|
-
});
|
|
479
|
+
if (selectedSubtitlesTrack) {
|
|
480
|
+
disabledSubs = false;
|
|
481
|
+
currentSubTrack = propValue;
|
|
482
482
|
|
|
483
|
-
AVPlay.setSelectTrack('TEXT', parseInt(
|
|
483
|
+
AVPlay.setSelectTrack('TEXT', parseInt(selectedSubtitlesTrack.id.replace('EMBEDDED_', '')));
|
|
484
484
|
|
|
485
|
-
|
|
486
|
-
events.emit('subtitlesTrackLoaded', selectedSubtitlesTrack);
|
|
487
|
-
onPropChanged('selectedSubtitlesTrackId');
|
|
488
|
-
}
|
|
489
|
-
} else if (!propValue) {
|
|
490
|
-
renderSubtitle(1, '');
|
|
491
|
-
disabledSubs = true;
|
|
485
|
+
events.emit('subtitlesTrackLoaded', selectedSubtitlesTrack);
|
|
492
486
|
onPropChanged('selectedSubtitlesTrackId');
|
|
493
487
|
}
|
|
494
488
|
}
|
|
@@ -33,39 +33,48 @@ function VidaaVideo(options) {
|
|
|
33
33
|
};
|
|
34
34
|
videoElement.ontimeupdate = function() {
|
|
35
35
|
onPropChanged('time');
|
|
36
|
+
onPropChanged('buffered');
|
|
36
37
|
};
|
|
37
38
|
videoElement.ondurationchange = function() {
|
|
38
39
|
onPropChanged('duration');
|
|
39
40
|
};
|
|
40
41
|
videoElement.onwaiting = function() {
|
|
41
42
|
onPropChanged('buffering');
|
|
43
|
+
onPropChanged('buffered');
|
|
42
44
|
};
|
|
43
45
|
videoElement.onseeking = function() {
|
|
44
46
|
onPropChanged('time');
|
|
45
47
|
onPropChanged('buffering');
|
|
48
|
+
onPropChanged('buffered');
|
|
46
49
|
};
|
|
47
50
|
videoElement.onseeked = function() {
|
|
48
51
|
onPropChanged('time');
|
|
49
52
|
onPropChanged('buffering');
|
|
53
|
+
onPropChanged('buffered');
|
|
50
54
|
};
|
|
51
55
|
videoElement.onstalled = function() {
|
|
52
56
|
onPropChanged('buffering');
|
|
57
|
+
onPropChanged('buffered');
|
|
53
58
|
};
|
|
54
59
|
videoElement.onplaying = function() {
|
|
55
60
|
onPropChanged('time');
|
|
56
61
|
onPropChanged('buffering');
|
|
62
|
+
onPropChanged('buffered');
|
|
57
63
|
};
|
|
58
64
|
videoElement.oncanplay = function() {
|
|
59
65
|
onPropChanged('buffering');
|
|
66
|
+
onPropChanged('buffered');
|
|
60
67
|
};
|
|
61
68
|
videoElement.canplaythrough = function() {
|
|
62
69
|
onPropChanged('buffering');
|
|
70
|
+
onPropChanged('buffered');
|
|
63
71
|
};
|
|
64
72
|
videoElement.onloadedmetadata = function() {
|
|
65
73
|
onPropChanged('loaded');
|
|
66
74
|
};
|
|
67
75
|
videoElement.onloadeddata = function() {
|
|
68
76
|
onPropChanged('buffering');
|
|
77
|
+
onPropChanged('buffered');
|
|
69
78
|
};
|
|
70
79
|
videoElement.onvolumechange = function() {
|
|
71
80
|
onPropChanged('volume');
|
|
@@ -105,6 +114,7 @@ function VidaaVideo(options) {
|
|
|
105
114
|
time: false,
|
|
106
115
|
duration: false,
|
|
107
116
|
buffering: false,
|
|
117
|
+
buffered: false,
|
|
108
118
|
subtitlesTracks: false,
|
|
109
119
|
selectedSubtitlesTrackId: false,
|
|
110
120
|
audioTracks: false,
|
|
@@ -154,6 +164,20 @@ function VidaaVideo(options) {
|
|
|
154
164
|
|
|
155
165
|
return videoElement.readyState < videoElement.HAVE_FUTURE_DATA;
|
|
156
166
|
}
|
|
167
|
+
case 'buffered': {
|
|
168
|
+
if (stream === null) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
var time = videoElement.currentTime !== null && isFinite(videoElement.currentTime) ? videoElement.currentTime : 0;
|
|
173
|
+
for (var i = 0; i < videoElement.buffered.length; i++) {
|
|
174
|
+
if (videoElement.buffered.start(i) <= time && time <= videoElement.buffered.end(i)) {
|
|
175
|
+
return Math.floor(videoElement.buffered.end(i) * 1000);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return Math.floor(time * 1000);
|
|
180
|
+
}
|
|
157
181
|
case 'subtitlesTracks': {
|
|
158
182
|
if (stream === null) {
|
|
159
183
|
return [];
|
|
@@ -411,6 +435,7 @@ function VidaaVideo(options) {
|
|
|
411
435
|
onPropChanged('time');
|
|
412
436
|
onPropChanged('duration');
|
|
413
437
|
onPropChanged('buffering');
|
|
438
|
+
onPropChanged('buffered');
|
|
414
439
|
if (videoElement.textTracks) {
|
|
415
440
|
videoElement.textTracks.onaddtrack = function() {
|
|
416
441
|
setTimeout(function() {
|
|
@@ -469,6 +494,7 @@ function VidaaVideo(options) {
|
|
|
469
494
|
onPropChanged('time');
|
|
470
495
|
onPropChanged('duration');
|
|
471
496
|
onPropChanged('buffering');
|
|
497
|
+
onPropChanged('buffered');
|
|
472
498
|
onPropChanged('subtitlesTracks');
|
|
473
499
|
onPropChanged('selectedSubtitlesTrackId');
|
|
474
500
|
onPropChanged('audioTracks');
|
|
@@ -550,7 +576,7 @@ VidaaVideo.canPlayStream = function(stream) {
|
|
|
550
576
|
VidaaVideo.manifest = {
|
|
551
577
|
name: 'VidaaVideo',
|
|
552
578
|
external: false,
|
|
553
|
-
props: ['stream', 'loaded', 'paused', 'time', 'duration', 'buffering', 'audioTracks', 'selectedAudioTrackId', 'subtitlesTracks', 'selectedSubtitlesTrackId', 'volume', 'muted', 'playbackSpeed'],
|
|
579
|
+
props: ['stream', 'loaded', 'paused', 'time', 'duration', 'buffering', 'buffered', 'audioTracks', 'selectedAudioTrackId', 'subtitlesTracks', 'selectedSubtitlesTrackId', 'volume', 'muted', 'playbackSpeed'],
|
|
554
580
|
commands: ['load', 'unload', 'destroy'],
|
|
555
581
|
events: ['propValue', 'propChanged', 'ended', 'error', 'subtitlesTrackLoaded', 'audioTrackLoaded']
|
|
556
582
|
};
|