Javascript 如何使用<;音频>;标签

Javascript 如何使用<;音频>;标签,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我正在尝试自动播放元素,但仍然不能在IE中使用,但可以在其他浏览器中使用。请参阅下面我的代码: JS-Bin 玩 $(函数(){ $(文档)。在('单击','播放',函数()上){ $('effectTada').attr('autoplay',true); }); }); 设置自动播放属性不应调用MediaElement。因此,如果媒体网络状态已设置为,则检查自动播放标志是否设置为true的步骤将已执行,此时设置此属性不应执行任何操作 换句话说,如果设置得太晚,仅设置此属性不应使媒体播放。

我正在尝试自动播放
元素,但仍然不能在IE中使用,但可以在其他浏览器中使用。请参阅下面我的代码:


JS-Bin
玩
$(函数(){
$(文档)。在('单击','播放',函数()上){
$('effectTada').attr('autoplay',true);
});
});

设置
自动播放
属性不应调用MediaElement。因此,如果媒体网络状态已设置为,则检查自动播放标志是否设置为true的步骤将已执行,此时设置此属性不应执行任何操作

换句话说,如果设置得太晚,仅设置此属性不应使媒体播放。您需要再次触发加载算法,或者只需调用MediaElement的方法:


设置
autoplay
属性不应调用MediaElement。因此,如果媒体网络状态已设置为,则检查自动播放标志是否设置为true的步骤将已执行,此时设置此属性不应执行任何操作

换句话说,如果设置得太晚,仅设置此属性不应使媒体播放。您需要再次触发加载算法,或者只需调用MediaElement的方法:


$('#effectTada').get(0).play()
在加载元数据后设置自动播放可能不会触发第一次播放。@kaido这是怎么发生的?那太疯狂了。您可以在下面添加答案和解释,以便我给您打勾:)
$(“#effectTada”).get(0).play()
在加载元数据后设置自动播放可能不会触发第一次播放。@kaido这是怎么发生的?那太疯狂了。您可以在下面添加答案和解释,这样我就可以给您打勾:)嗯,为什么这不适用于$.ajax()?知道吗?你的意思是在
$.ajax()
的回调中?这是因为您的代码需要经过用户手势的授权才能调用此播放方法,即您需要在单击事件中。但是,您应该能够在这样的单击事件中将您的元素标记为已授权,直接暂停它,然后您可以将其更改为src并再次调用其play.Yes。在这部分中:
success:function(data){}
。你能给我举个例子吗?这是之前关于这个问题的一个Q/a,也是这个:是的,但是在执行ajax操作时,你的点击事件已经失效了。这就像
onclick=(evt)=>setTimeout(dosomethingthasthouldbetrusted,10000)
。10秒过后,很难说它真的是由用户的手势触发的。因此浏览器确实有一定的时间限制(大约500毫秒),之后他们认为点击事件是不安全的。知道吗?你的意思是在
$.ajax()
的回调中?这是因为您的代码需要经过用户手势的授权才能调用此播放方法,即您需要在单击事件中。但是,您应该能够在这样的单击事件中将您的元素标记为已授权,直接暂停它,然后您可以将其更改为src并再次调用其play.Yes。在这部分中:
success:function(data){}
。你能给我举个例子吗?这是之前关于这个问题的一个Q/a,也是这个:是的,但是在执行ajax操作时,你的点击事件已经失效了。这就像
onclick=(evt)=>setTimeout(dosomethingthasthouldbetrusted,10000)
。10秒过后,很难说它真的是由用户的手势触发的。因此浏览器确实有一定的时间限制(大约500毫秒),之后他们认为点击事件是不安全的。
$(document).on('click', '.play', function(){

  $('#effectTada')
    .attr('autoplay', true)
    .get(0).play();

});