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

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