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.
This commit is contained in:
138138138 2021-02-01 15:59:27 +08:00 committed by GitHub
parent 26ce0eb4b9
commit 685902adab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 24 additions and 0 deletions

View File

@ -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)
}