【问题标题】:html5 audio loop from point a to b从点 a 到 b 的 html5 音频循环
【发布时间】:2014-03-13 16:10:00
【问题描述】:

根据spec

html5 音频具有以下属性:

循环 指示音频数据是否应循环播放。默认值为 false。

循环开始 如果循环属性为真,则以秒为单位的可选值循环应该开始。它的默认值为 0,它可以设置为 0 到缓冲区持续时间之间的任何值。

循环结束 如果循环属性为真,则以秒为单位的可选值循环应该结束。它的默认值为 0,它可以设置为 0 到缓冲区持续时间之间的任何值。

我正在尝试循环播放一段音频文件,例如从第 5 秒到第 8 秒。

我尝试了很多组合,包括使用/不使用: #t= 网址参数 | DOM 中的 loopstart/loopend 属性 | 循环属性

到目前为止没有任何效果(chrome 浏览器)。也许这些属性根本不被支持。我试图避免使用 javascript 来设置音频的当前时间。

HTML

<audio controls="" src="http://www.tonycuffe.com/mp3/tail%20toddle.mp3#t=5,8"        loopstart="5" loopend="8" loop></audio>

JAVASCRIPT

var myAudio = document.getElementsByTagName('audio')[0];
myAudio.loopStart = 5;
myAudio.loopEnd = 8;
myAudio.play();

fiddle

我看过: Seamless audio loop to an arbitrary positiongapless looping audio html5

【问题讨论】:

  • 对于所有比简单播放/停止更复杂的音频操作,请尝试使用 Web Audio API 代替
  • 确实,我只是在阅读。了不起的东西。从我读到的内容来看,网络音频 api 使用 ajax 来加载音频资源。这限制了我们使用相同域上的资源或在 coors 支持下使用资源。
  • 据我所知
  • 加载
  • 啊哈。很高兴知道,谢谢!

标签: javascript html audio


【解决方案1】:

试试这个。

JS

功能音频(){ if (document.getElementById("music").currentTime >= 8) {document.getElementById("music").currentTime = 5} }

HTML

<audio id="music" controls ontimeupdate="audio()">
<source src="http://www.tonycuffe.com/mp3/tail%20toddle.mp3" type="audio/mp3">
<audio>

【讨论】:

  • 您介意解释一下为什么这可以回答这个问题吗?
  • 每当调用 'ontimeupdate' 时,它都会调用函数“audio()”,该函数会自动将音频重置为 5。这会在固定点(5 到 8)之间循环。您可以重新编写它,以便将 8 和 5 替换为变量如果您想要 jquery,它可能是 ---- $("#music").bind('timeupdate', audio);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多