Integrate quality selection into Plyr

Signed-off-by: Jesús <heckyel@hyperbola.info>
This commit is contained in:
James Taylor
2021-08-25 14:47:57 -07:00
committed by Jesús
parent ee581c56a3
commit 9f44e0474b
3 changed files with 117 additions and 29 deletions

View File

@@ -56,6 +56,30 @@
</figure>
<script src="/youtube.com/static/js/av-merge.js"></script>
<script>
function changeQuality(selection) {
var video = document.getElementById('js-video-player');
var currentVideoTime = video.currentTime;
var videoPaused = video.paused;
var videoSpeed = video.playbackRate;
var videoSource;
if (avMerge)
avMerge.close();
if (selection.type == 'uni'){
videoSource = data['uni_sources'][selection.index];
video.src = videoSource.url;
} else {
let srcPair = data['pair_sources'][selection.index];
videoSource = srcPair[0];
avInitialize(video, srcPair, currentVideoTime);
}
video.currentTime = currentVideoTime;
if (!videoPaused){
video.play();
}
video.playbackRate = videoSpeed;
}
</script>
{% if using_pair_sources %}
<!-- Initialize av-merge -->
<script>
@@ -104,7 +128,7 @@
<script src="/youtube.com/static/js/speedyplay.js"></script>
<select id="quality-select">
{% for src in uni_sources %}
<option value='{"type": "uni", "index": {{ loop.index0 }}}' {{ 'selected' if loop.index0 == uni_idx and not using_pair_sources else '' }} >{{ src['quality_string'] }} (integrated)</option>
<option value='{"type": "uni", "index": {{ loop.index0 }}}' {{ 'selected' if loop.index0 == uni_idx and not using_pair_sources else '' }} >{{ src['quality_string'] }}</option>
{% endfor %}
{% for src_pair in pair_sources %}
<option value='{"type": "pair", "index": {{ loop.index0}}}' {{ 'selected' if loop.index0 == pair_idx and using_pair_sources else '' }} >{{ src_pair[0]['quality_string'] }}, {{ src_pair[1]['quality_string'] }}</option>
@@ -113,28 +137,7 @@
<script>
document.getElementById('quality-select').addEventListener(
'change', function(e) {
var video = document.getElementById('js-video-player');
var selection = JSON.parse(this.value);
var currentVideoTime = video.currentTime;
var videoPaused = video.paused;
var videoSpeed = video.playbackRate;
var videoSource;
if (avMerge)
avMerge.close();
if (selection.type == 'uni'){
videoSource = data['uni_sources'][selection.index];
video.src = videoSource.url;
} else {
let srcPair = data['pair_sources'][selection.index];
videoSource = srcPair[0];
avInitialize(video, srcPair, currentVideoTime);
}
setVideoDimensions(videoSource.height, videoSource.width);
video.currentTime = currentVideoTime;
if (!videoPaused){
video.play();
}
video.playbackRate = videoSpeed;
changeQuality(JSON.parse(this.value))
}
);
</script>
@@ -445,11 +448,6 @@
</div>
<script>
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
data = {{ js_data|tojson }};
// @license-end
</script>
<script src="/youtube.com/static/js/common.js"></script>
<script src="/youtube.com/static/js/transcript-table.js"></script>
{% if settings.use_video_player == 2 %}