【发布时间】:2017-01-13 09:49:12
【问题描述】:
我正在寻找记录播放页面内嵌入音频文件的最佳方式。我的第一反应是在按下播放按钮时尝试触发 AJAX 请求。
我正在查看Media Events docs,并相信playing 事件是我所追求的。它是否正确?我还担心它可能会在每次按下播放按钮时触发 AJAX 请求,而不仅仅是第一次(例如,如果它们暂停和取消暂停),这可能会产生倾斜的日志。
这是文档为媒体事件提供的监听器示例:
var v = document.getElementsByTagName("video")[0];
v.addEventListener("seeked", function() { v.play(); }, true);
v.currentTime = 10.0;
但我如何将其集成到以下代码中:
<audio id="123" controls>
<source src="../uploads/filename.mp3" type="audio/mpeg">
</audio>
我尝试了以下操作,但似乎没有任何反应:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('audio').each(function() {
var id = $(this).attr('id');
$(this).addEventListener("playing", function() {
alert(id);
});
});
});
</script>
【问题讨论】:
-
不要认为你想要播放事件——它只有在缓冲问题后文件再次准备好时才会触发。从您的文档链接中:“当由于缺少数据而暂停或延迟后准备开始播放时触发播放事件。”。 “播放”事件就是你想要的。 “播放开始时触发播放事件。”。 developer.mozilla.org/en-US/docs/Web/Events/play.
标签: javascript jquery ajax