首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置音频的持续时间

问如何设置音频的持续时间
EN

Stack Overflow用户
提问于 2015-06-07 19:32:11
回答 3查看 8.5K关注 0票数 4

我试图使用音频的属性来设置音频标记的持续时间。

我尝试过以下几种方法,但似乎行不通:$('audio')[0].duration = 1;

我已经看过其他的答案,但是我没有看到任何使用持续时间属性的答案。

如果持续性属性是只读的,那么它给我留下了什么其他方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-07 19:52:23

您不能更改持续时间,因为它锁定到原始数据(这些数据不能通过音频元素更改)。

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

  • 使用事件并根据阈值检查currentTime
  • 您还可以使用requestAnimationFrame轮询相同的值并执行相同的检查。
  • 或者,对于超精确的计时,您需要使用Web音频API,为音频创建一个音频缓冲区,然后在首选的时间使用开始/停止。这将要求CORS要求得到满足。

在加载端,浏览器可能会加载整个文件。如果您想要控制这个部分,您必须使用媒体源扩展,它允许您控制缓冲过程。

票数 7
EN

Stack Overflow用户

发布于 2020-05-01 18:04:04

我想和大家分享我是怎么解决的。希望这能帮到你。假设您的HTML中有一个音频元素(您可以隐藏它):

代码语言:javascript
复制
<audio src="source_to_audio_file.mp3" controls="controls" id="audio_el" type="audio/mpeg"></audio>

您有另一个用于启动音频播放的元素:

代码语言:javascript
复制
<div><a onclick="play_audio('audio_el',2.01,3.2);"></a></div>

函数play_audio在下面,它接受三个参数: audio_element、time_start、工期

当元素开始播放时,音频元素的属性值设置为给定的持续时间。然后,您将在timeupdate事件中使用它来暂停音频。

在剧本中:

代码语言:javascript
复制
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();
}
票数 3
EN

Stack Overflow用户

发布于 2019-09-10 12:43:14

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30697618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档