如何在jQuery中获取对象标签的持续时间并在特定时间播放视频?

时间:2011-10-24 08:36:52

标签: javascript jquery html html5 html5-audio

<div id="sound" >
  <OBJECT  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="0" HEIGHT="0" id="Yourfilename" ALIGN="">
    <PARAM NAME=movie VALUE="sample.swf"> 
    <PARAM NAME=quality VALUE=high>
    <PARAM NAME=bgcolor VALUE=#333399> 
    <EMBED src="sample.swf" quality=high bgcolor=#333399 WIDTH="0" HEIGHT="0" NAME="Yourfilename" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">

    </EMBED> 

  </OBJECT> 
</div>

我想获得此声音的持续时间,并将其转换为秒,然后从特定时间播放此声音。

例如,从40秒开始播放此声音。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

正如您之前所说,不要使用已弃用的标记,并尝试使用HTML5中新的<audio>标记来执行此操作。

您必须致电audio.duration。检查同一网站上的this已回答的问题。尝试这样的事情:

$(audio).bind('timeupdate', function() {
...
parseInt(audio.duration - audio.currentTime, 10),
...
position = (audio.currentTime / audio.duration) * 100,
祝你好运。

编辑:如果你想在20秒之后开始,你应该打电话给audioElement.currentTime=20;,然后在你的j audioElement.play();打电话给$(document).ready(function())。询问您是否还需要其他任何东西。

答案 1 :(得分:1)

$(document).ready(function(){
  var audio = $('audio');
  $(audio).bind('timeupdate', function() {
    parseInt(audio.duration - audio.currentTime, 20).toString();
    position = (audio.currentTime / audio.duration) * 100;
  });
audio.play();
});

我正在努力解决这个问题,但直到现在我还不能。我用的时候

alert(parseInt(audio.duration - audio.currentTime, 20).toString()) 

它返回NAN。