summaryrefslogtreecommitdiffstats
path: root/assets/js/player.js
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 /assets/js/player.js
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.
Diffstat (limited to 'assets/js/player.js')
-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)
+}