Javascript HTML5音频持续时间返回“;“未定义”;(jQuery)
我目前正在开发一个移动应用程序,其中我需要一个定制的HTML5音频播放器。 以下是我的播放器的基本HTML:Javascript HTML5音频持续时间返回“;“未定义”;(jQuery),javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,我目前正在开发一个移动应用程序,其中我需要一个定制的HTML5音频播放器。 以下是我的播放器的基本HTML: <div data-enhance="false"> <audio id="music" preload="true"> <source src="./testfiles/track_t.wav" type="audio/wav"> <source src="./testfiles/track_t.mp3"
<div data-enhance="false">
<audio id="music" preload="true">
<source src="./testfiles/track_t.wav" type="audio/wav">
<source src="./testfiles/track_t.mp3" type="audio/mpeg">
</audio>
<div id="audioplayer">
<button id="pButton" class="play"></button>
<div id="timeline">
<div id="playhead"></div>
</div>
</div>
</div>
正如您所看到的,这里有一个alert(),我注意到了问题所在。执行此alert()时,它返回“undefined”,这意味着它无法获取my audio元素的持续时间
当我在网上寻找解决方案时,我注意到大多数有类似问题的人要么在加载文件之前获取持续时间,要么使用原始javascript。这让我得出结论,jQuery选择可能是错误的。我尝试了几种不同的方法来选择持续时间
$('#music').html('duration');
返回“[object]”,然后
也产生了“未定义”
我就是这样来到这里的,我不知道该怎么做了。我使用的jQuery是用于应用程序开发的jQuery mobile。如前所述,所有文件路径都正确,我可以播放和暂停音乐。希望有人能帮助我,提前谢谢^^ 您试图读取jQuery对象的属性(
$(“#music”)
),该属性属于dom元素
由于在事件处理程序中,此引用(默认情况下)处理程序所针对的元素(在本例中为音频元素本身),因此可以使用this.duration
$('#music').bind('canplay', function(){
dur = this.duration;
alert(this.duration);
});
$('#music').attr('duration');
$('#music').bind('canplay', function(){
dur = this.duration;
alert(this.duration);
});