summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author138138138 <78271024+138138138@users.noreply.github.com>2021-02-01 15:59:27 +0800
committerGitHub <noreply@github.com>2021-02-01 15:59:27 +0800
commit685902adabb7da522587f6308495701891a8b5fe (patch)
tree9ef902a9f5afa969aedd5869f56c51e5392412bf
parent26ce0eb4b9b71bd824a1179889d37f757f9f3e4e (diff)
downloadinvidious-685902adabb7da522587f6308495701891a8b5fe.tar.gz
invidious-685902adabb7da522587f6308495701891a8b5fe.tar.bz2
invidious-685902adabb7da522587f6308495701891a8b5fe.zip
Update player.js
Fixes audio mode duration doubled in iPhone iOS browsers. The player will stop after reaching the real duration. iOS() checks both iOS and iPadOS. Only tested on iPhone iOS browsers. Testers needed for behavior of iPadOS and MacOS.
-rw-r--r--assets/js/player.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/assets/js/player.js b/assets/js/player.js
index 04326631..3c4188d0 100644
--- a/assets/js/player.js
+++ b/assets/js/player.js
@@ -547,3 +547,27 @@ window.addEventListener('keydown', e => {
if (player.share) {
player.share(shareOptions);
}
+
+//iOS audio double duration fix
+player.on('loadedmetadata', function () {
+ if (iOS() && video_data.params.listen) {
+ player.on('timeupdate', function () {
+ if (player.remainingTime() < player.duration() / 2) {
+ player.currentTime(player.duration() + 1);
+ }
+ })
+ }
+});
+
+function iOS() {
+ return [
+ 'iPad Simulator',
+ 'iPhone Simulator',
+ 'iPod Simulator',
+ 'iPad',
+ 'iPhone',
+ 'iPod'
+ ].includes(navigator.platform)
+ // iPad on iOS 13 detection
+ || (navigator.userAgent.includes("Mac") && "ontouchend" in document)
+}