Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测HTML5音频标签是否已被监听至少x秒?_Html_Audio - Fatal编程技术网

如何检测HTML5音频标签是否已被监听至少x秒?

如何检测HTML5音频标签是否已被监听至少x秒?,html,audio,Html,Audio,我想在用户收听音频元素超过5秒时记录。如何使用HTML5检测到这一点?我会处理播放事件,然后在播放完成后使用setTimeout调用跟踪。类似这样的代码(伪代码): 和往常一样,根据您的需要,这可能会变得更加复杂。您也可以只使用ontimeupdate事件来跟踪playhead当前所在的位置。有关html5音频事件的参考,请查看此页面: 祝你好运 播放事件之后以及音频实际开始播放时可能会有延迟。在timeupdate上设置事件侦听器更安全。 var timeHandler = null

我想在用户收听音频元素超过5秒时记录。如何使用HTML5检测到这一点?

我会处理播放事件,然后在播放完成后使用setTimeout调用跟踪。类似这样的代码(伪代码):

和往常一样,根据您的需要,这可能会变得更加复杂。您也可以只使用ontimeupdate事件来跟踪playhead当前所在的位置。有关html5音频事件的参考,请查看此页面:


祝你好运

播放
事件之后以及音频实际开始播放时可能会有延迟。在
timeupdate
上设置事件侦听器更安全。
    var timeHandler = null;

// if they stop listening, don't give them the alert
   myAudioElement.addEventListener('stop', function() {
     if (timeHandler) clearTimeout(timeHandle);
   });

// when they start to play, set an event to pop up 5 seconds later
    myAudioElement.addEventListener('play', function() {
        timeHandler = setTimeout(5000,function() {
          // here I would make some kind of ajax call to log the event
          alert("it's been 5 seconds!");
        });