如何在Audio完成播放HTML5时触发JQuery事件(How to trigger a JQuery event when Audio has finished playing HTML5)
我试图了解当音频停止播放时如何触发事件。 我正在使用HTML5 标记。 到目前为止,我可以通过duration属性获取音频的duration ,但目前我无法做到这一点。 我想要做的就是将一个“播放”字符串传递给一个html()方法,以便在我的音频播放完毕时不会显示“暂停”。
切换功能:
$("#toggleButton").on("click", function(evt) {
if(audio.paused) {
audio.play();
$(this).html("Pause");
}
else {
audio.pause();
$(this).html("Play");
}
});
我也在努力寻找有关音频方法和属性的文档。 我试着在JQuery和Mozilla网络上搜索“音频”,他们没有返回任何东西。
I'm trying to fathom out how to trigger an event when my audio has stopped playing. I am using the HTML5 tag. So far I can get the audio to give me its duration using the duration property, but I'm unable to do much with this at the moment. All's I want to do is pass a "play" string into a html() method so it doesn't keep displaying "pause" when my audio is finished playing.
Toggle function:
$("#toggleButton").on("click", function(evt) {
if(audio.paused) {
audio.play();
$(this).html("Pause");
}
else {
audio.pause();
$(this).html("Play");
}
});
I am also struggling to find documentation regarding audio methods and properties. I've tried searching "audio" on both the JQuery and Mozilla network and they return nothing back.
原文:https://stackoverflow.com/questions/19504903
更新时间:2020-09-17 14:09
最满意答案
尝试这个:
audio.addEventListener('ended', function(){
$("#toggleButton").html("Play");
});
Try this:
audio.addEventListener('ended', function(){
$("#toggleButton").html("Play");
});
相关问答
编辑 :只是为了显示小提琴中使用的方法: App.NextSongOnEndedView = Ember.View.extend({
// hook in here and subscribe to the ended event
didInsertElement: function() {
var self = this;
var player = this.$('audio')[0];
player.addEventListener('ended', funct
...
这是因为您的类选择器对于jQuery同时触发它们的文件都是相同的。 为每个源定义一个唯一的源ID,并在jQuery中使用id作为选择器来播放这些文件。 Turns out this was the result of using Slick Slider in infinite mode. I'm not sure exactly what the fix is if you need to keep it in infinite mode, but changing the slider to
...
我最近在做类似的事情,发现你无法使用trigger事件来播放音频。 我正在努力 $('#btn').click(function(){
myAudioControl.play();
});
$('#btn').trigger('click');
此代码永远不会在iOS5上运行,因为它需要对元素进行物理点击。 这里有一个很好的解决方案通过iOS 5 HTML5应用程序中的javascript事件播放声音我与之合作找到问题的解决方案。 当用户点击按钮时,我基本上让音频播放静音mp3文件,然
...
尝试这个: audio.addEventListener('ended', function(){
$("#toggleButton").html("Play");
});
Try this: audio.addEventListener('ended', function(){
$("#toggleButton").html("Play");
});
这里有一个处理ended事件的HTML5播放列表示例,如果有帮助的话? 在你的事件处理程序中引用this ,但在这个上下文中, this指的是捕获事件的DOM元素,即你的audio元素..试试这个: function myPlaylist(){
var self = this;
var player = document.createElement('audio');
this.next = function (){
// Picks next song
...
显然媒体事件(那些特别属于音频或视频的事件,如play , pause , timeupdate等)不会被冒泡。 你可以在这个问题的答案中找到解释。 所以使用他们的解决方案,我捕获了play事件, jQuery.createEventCapturing(['play']);
jQuery('body').on('play', 'audio', function(){... // now this would work.
JS Bin演示 事件捕获的代码(取自其他SO答案): jQue
...
尝试这样的事情。 function listen(evnt, elem, func) {
if (elem.addEventListener) // W3C DOM
elem.addEventListener(evnt, func, false);
else if (elem.attachEvent) { // IE DOM
var r = elem.attachEvent("on" + evnt, func);
return r;
...
IE和Safari不支持ogg格式(除非您安装插件)。 资源 桌面 Chrome Firefox (Gecko) Internet Explorer Opera Safari
(Yes) 3.5 (1.9.1) Not supported 10.50 3.1 (must be installed separately, e.g. XiphQT)
移动 Safari Mobile
Not supported
尝试将URL更
...
您正在使用jQuery的trigger()来触发未在发布的代码中定义的事件,因此很难真正说出'stop'是什么,但作为一般规则,HTML5 Audio没有stop()函数,仅play()和pause(),重置音频只需再次定义源或将.currenttime设置为零,如下所示: var audioElm = document.getElementById('soundTour');
audioElm.src = 'myaudio.mp3';
audioElm.load();
要么 v
...
您可以为已结束和播放事件添加事件侦听器。 另外,为什么要通过javascript创建音频标签? 我只想创建一个空的隐藏音频标签:
你有两个选择: 音频播放/停止时禁用/启用按钮/链接(首选imho) 在播放时忽略点击 然后为它添加两个eventlisteners: var playing = false;
$('#myAudio').on('playing', function() {
pl
...