Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5音频持续时间返回“;“未定义”;(jQuery)_Javascript_Jquery_Html_Audio - Fatal编程技术网

Javascript HTML5音频持续时间返回“;“未定义”;(jQuery)

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"

我目前正在开发一个移动应用程序,其中我需要一个定制的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" 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);
});