HTML 音频 - 使用 jQuery 检测位置

Posted

技术标签:

【中文标题】HTML 音频 - 使用 jQuery 检测位置【英文标题】:HTML Audio - Detecting position with jQuery 【发布时间】:2012-04-30 09:39:51 【问题描述】:

在使用 html5 音频标签有一个 eventListener 或使用 Dom/jQuery 的操作来在播放期间或结束时触发一个事件时是否有?

Thisanswer 链接到 currentTime 但没有示例,下面是伪代码。

<!DOCTYPE html>
<html>
<body>

<audio controls="controls">
  <source src="file.ogg" type="audio/ogg" />
  <source src="file.mp3" type="audio/mpeg" />
Your browser does not support the audio element.
</audio>

<script src="jquery.js"></script>
<script>
$(document).ready(function () 
    $("audio").addEventListener("end", function () 
        alert("song has ended");
    );
    $("audio").addEventListener('20.2', function () 
        alert("your currently at 20.2 seconds in the track");
    );
);
</script>

</body>
</html>

【问题讨论】:

我也看到了这篇文章,***.com/questions/9830375/… - 在随机位置启动 HTML5,您可以在整个网站上看到一些与这篇文章相关的好代码(点击右下方的链接),我确保你能找到一些好的 sn-ps 并制作一个很好用的简单脚本。 mindovermeta.com/2010/08/… 和这个网站mindovermeta.com/demos/html5audio.php?step=2 - 也是我需要的很好的例子。请查看它们和本页上的其他链接 - 信息足够多 【参考方案1】:

你可以试试这个:

获取音频的持续时间并根据 currentTime 发出警报,并在需要的地方显示警报。

audio.addEventListener("timeupdate", function()    
var duration = document.getElementById('duration');
var s = parseInt(audio.currentTime % 60);    var m = parseInt((audio.currentTime / 60) % 60);
duration.innerHTML = m + '.' + s + 'sec'; 
, false);

【讨论】:

我对这两种回答都很满意,但我不能投票给 ATM 上的回答。因此,我将这个标记为答案,另一个帖子也显示了干净的代码但无法代表。 不错的答案。我正在寻找如何在指定播放范围并且已达到范围末尾时检测某种“结束”事件。您的回答提供了解决方案。谢谢。【参考方案2】:

您可以使用ended 事件:

$("audio").on("ended", function()  
     // do stuff
);

【讨论】:

有duration函数吗? 我不相信有 - 至少没有一个你可以告诉在播放的特定点开火。 这是一个有用的答案和干净的代码块,我已经回来给你一个加分代表。抱歉,它的价值很小,但我们非常感谢您的帮助。

以上是关于HTML 音频 - 使用 jQuery 检测位置的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 将 onclick 事件添加到音频时间线

jQuery:HTML5音频控件仅在播放时浮动

检测连接的音频设备 iOS

阻止'Div'改变位置'悬停'

如何检测 html Web 应用程序中的滑动源位置?

使用 Javascript/jQuery 一次播放一个 HTML 音频文件