如何设置仅下载部分文件的超链接?

时间:2016-06-02 04:17:18

标签: javascript html5 html5-audio

如果我有一个链接到另一台服务器上的mp3文件的超链接,那么当用户点击该链接时,如何让浏览器只下载该文件的前15秒(或其他一段时间)?是否有自动执行此操作的HTML5属性?

1 个答案:

答案 0 :(得分:4)

是,有点 - 有 Media Fragment URI 规范,允许您在URI中指定时间范围。您可以附加带有片段的URI和t=

#t=from,to

例如:

http://domain.to/music.mp3#t=0,10    (or just t=,10 in this case if from=0)

将从0-10秒加载数据。

实施例



Loading... will auto-play<br>
<audio
  src="https://mp3l.jamendo.com/?trackid=912259&format=mp31#t=0,10"
  autoplay controls preload="none"></audio>

<br><br>Or click this link:<br>
<a href="https://mp3l.jamendo.com/?trackid=912259&format=mp31#t=0,10">
CTRL + Click link to play 10s of audio in a new tab...</a>
&#13;
&#13;
&#13;

然而,这不一定会阻止浏览器加载其余的音频数据。片段只是告诉媒体​​元素在某些时间开始和停止,而不需要在定义片段时间之后手动完成。

将preload设置为none可能会有所帮助,但浏览器可以加载完整的文件。您可以深入了解Media Source Extensions来控制缓冲区加载和缓存数据的方式,但它是wide topic

或者使用Range标头和片段uri通过XHR加载,但是您需要提前了解有关音频文件的一系列详细信息,以确定字节范围,如比特率,通道等。