在 html5 音频元素结束播放前 5 秒执行 Javascript 代码
Execute Javascript code 5 seconds before html5 audio element reaches end of playback
我正在使用一个默认的audio
元素(不向用户提供控制权),我通过jQuery与之交互(更改源,播放/暂停 - 通常)。现在我正在尝试淡入下一个轨道(第二个音频元素),提前 5 秒开始以实现无缝过渡。
我从媒体事件和音频元素属性页面收集到的信息来看,默认情况下没有方法可以执行此操作 - 最接近的东西似乎是onended
事件(显然触发得太晚了)和loop
属性,它有同样的问题。
我将我之前的尝试分离为答案,以从未回答的队列中删除问题,但它最初包含在此处
任何关于更有效地解决这个问题的帮助,以我错过的方式,或改进我现有的解决方案,都非常感激!提前谢谢。
此时,我看到的唯一解决方案是提前检查曲目的持续时间,然后设置以下超时:
$('audio').bind('loadedmetadata', function() {
duration = $(this).prop('duration') * 1000; // get duration in milliseconds
var fadetimer = setTimeout(function(){
// set up next audio file
}, duration - 5000); // execute timeout 5 seconds before end of playback
});
然而,这对我来说似乎效率很低。我也不确定此方法是否会在后台运行"垃圾"超时或事件绑定,这最终会增加并减慢应用程序的速度。
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 在Safari执行javascript之前对其进行修改
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何在从浏览缓存加载页面时执行javascript
- 使用Rhino和ASE执行Javascript的区别
- 如何在加载完整页面后严格执行javascript代码
- 在动态加载的对话框中执行Javascript
- 在Sinatra中执行Javascript
- 通过AJAX加载页面并执行javascript和CSS
- 适用于多种浏览器的Selenium-需要能够执行javascript的webDriver
- 如何在seleniumwebdriver中执行javascript提示并等待接受输入
- 在window.open()生成的窗口中执行JavaScript
- AJAX成功回调-执行javascript时出现问题
- 通过指令在控制器中执行javascript函数
- 从React Native Android原生地执行JavaScript代码
- iframe未执行Javascript方法(PHP)
- 执行JavaScript代码,使用selenium webdriver或WatiN从控制台获取日志
- 通过web驱动程序异步执行Javascript
- 如何在长时间执行JavaScript期间显示微调器
- 点击困难时执行javascript函数