Javascript 如何设置音频的持续时间

Javascript 如何设置音频的持续时间,javascript,jquery,html5-audio,Javascript,Jquery,Html5 Audio,我正在尝试使用音频的HTML DOM duration属性设置音频标记的持续时间 我尝试了以下方法,但似乎不起作用: $('audio')[0]。持续时间=1 我已经看过了其他的答案,但我看不到任何利用duration属性的答案 如果duration属性为readonly,它给我留下了什么其他方法?您无法更改duration,因为它被锁定为原始数据(无法通过音频元素更改) 您可以通过监控播放时间并在阈值启动时暂停音频来限制播放,从而实现不同持续时间的幻觉: 使用并对照阈值检查currentTi

我正在尝试使用音频的HTML DOM duration属性设置音频标记的持续时间

我尝试了以下方法,但似乎不起作用:
$('audio')[0]。持续时间=1

我已经看过了其他的答案,但我看不到任何利用duration属性的答案


如果duration属性为readonly,它给我留下了什么其他方法?

您无法更改duration,因为它被锁定为原始数据(无法通过音频元素更改)

您可以通过监控播放时间并在阈值启动时暂停音频来限制播放,从而实现不同持续时间的幻觉:

  • 使用并对照阈值检查
    currentTime
  • 您还可以使用轮询相同的值并执行相同的检查
  • 或者,为了获得超精确的计时,您需要使用,为音频创建一个音频缓冲区,然后使用开始/停止和首选时间。这需要满足CORS要求

在加载端,浏览器可能会加载整个文件。如果你想控制这个部分,你必须使用它来控制缓冲过程。

我想分享我是如何解决的。希望这对你有帮助。
sound = new Howl({

    src: ['./assets/audio/classic_bell.mp3'], //you can set the custom path 
                                       **OR** 
    src : ['http://...../your url/mp3file.mp3'], //you can also set the url path to set 
                                                 the audio                                                        loop: true,
  });

//in method where you want to play the sound

 this.sound.play();

 setTimeout(()=> {

      this.sound.stop();

  }, 1000);
假设HTML中有音频元素(可以隐藏):


你所说的“幻觉”是什么意思?你能举个例子吗?我认为这几乎没什么用,你仍然有一个进度条显示整个持续时间,你仍然可以跳过它?@adeneo我想“效果”是一个更好的词。假设控件未激活,或者元素甚至已附加到DOM。。OP始终可以为时间创建自定义滑块。(非主题:fungerer codementor bra?)@K3N-Nja,jeg fikk en invitasjon,直到codementor når de startet opp av en eller annen grunn,og注册商meg,他们的名字是什么。杰格·福斯特(Jeg får e-post)是一名路人,他在杰格·哈尔·阿尔德利·特詹特·菲姆(femåre pådet.)工作时遇到了一些问题。德克斯卡尔杜哈!停下来,这对我不起作用。我替换为pause()和load()。
<audio src="source_to_audio_file.mp3" controls="controls" id="audio_el" type="audio/mpeg"></audio>
<div><a onclick="play_audio('audio_el',audio_element,2.01,3.2);"></a></div>
var player = document.getElementById("audio_el");  
player.addEventListener("timeupdate", function() {
if (player.currentTime - player._startTime >= player.value){    
      player.pause(); 
 };

});

function play_audio(audio_element,time_start,duration){
var player = document.getElementById(audio_element);
player.value=duration;
player._startTime=time_start;
player.currentTime = time_start;  
player.play();
}