gpt4 book ai didi

适用于 iPad 的 MediaElement.JS 和 setCurrentTime()

转载 作者:行者123 更新时间:2023-12-01 05:34:01 24 4
gpt4 key购买 nike

我目前在我的网站上使用 MediaElement.js 作为 HTML5 视频页面。

当用户离开页面/站点时,我会保存视频的位置,以便当他们返回上次离开的位置时。

我在浏览器中运行良好,但是当我在 iPad 上尝试此操作时,我无法使用 setCurrentTime() .

我尝试在播放事件中使用以下内容以及 loadedmetadata事件
两者在 Chrome 中都可以正常工作,但在 iPad 中却无法正常工作。

player.addEventListener('loadedmetadata', function (e) {
if (savedPosition > 0) {
// Debug
console.log('[StartFrom]' + savedPosition);

// Set the start time from the relation in seconds
player.setCurrentTime(savedPosition);

// Debug
console.log('[CurrentPosition]' + player.currentTime);

// Set the video has played flag - so if paused and played it is not
// reset to start time

videoHasPlayed = true;
}
}, false);

有没有人对如何帮助我解决这个问题有任何聪明的想法?
https://github.com/johndyer/mediaelement/issues/243

最佳答案

我找到了解决我自己问题的方法,经过各种研究后,我将代码移到 timeupdate 事件中,它在 iPad 和台式机上都可以正常工作。

确保您使用 bool 值来阻止逻辑进入疯狂循环。

    //EVENT - When the video time has been updated
player.addEventListener('timeupdate', function (e) {

//If video has not been played AND savedPosition is greater than 0
if (!videoHasPlayed && savedPosition > 0) {

//Debug
console.log('[StartFrom - meta]' + savedPosition);

//Set the start time from the relation in seconds (MediaElement)
player.setCurrentTime(savedPosition);

//Debug
console.log('[CurrentPosition - meta]' + player.currentTime);

//Set the video has played flag
//Otherwise be continual loop of going back to this time
//This event gets called around every 250ms
videoHasPlayed = true;
}
}, false);

关于适用于 iPad 的 MediaElement.JS 和 setCurrentTime(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9805707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com