diff options
| author | 138138138 <78271024+138138138@users.noreply.github.com> | 2021-02-01 15:59:27 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-01 15:59:27 +0800 |
| commit | 685902adabb7da522587f6308495701891a8b5fe (patch) | |
| tree | 9ef902a9f5afa969aedd5869f56c51e5392412bf /assets/js/player.js | |
| parent | 26ce0eb4b9b71bd824a1179889d37f757f9f3e4e (diff) | |
| download | invidious-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.js | 24 |
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) +} |
