如果我有一个链接到另一台服务器上的mp3文件的超链接,那么当用户点击该链接时,如何让浏览器只下载该文件的前15秒(或其他一段时间)?是否有自动执行此操作的HTML5属性?
答案 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;
然而,这不一定会阻止浏览器加载其余的音频数据。片段只是告诉媒体元素在某些时间开始和停止,而不需要在定义片段时间之后手动完成。
将preload设置为none可能会有所帮助,但浏览器可以加载完整的文件。您可以深入了解Media Source Extensions来控制缓冲区加载和缓存数据的方式,但它是wide topic。
或者使用Range标头和片段uri通过XHR加载,但是您需要提前了解有关音频文件的一系列详细信息,以确定字节范围,如比特率,通道等。