如果我有一个链接到另一台服务器上的 mp3 文件的超链接,当用户单击该链接时,我如何才能让浏览器仅下载该文件的前 15 秒(或其他持续时间)?是否有一个 HTML5 属性可以自动执行此操作?
最佳答案
是的,有点 - 有 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>
但是,这不一定会阻止浏览器加载其余的音频数据。片段只是告诉媒体元素在特定时间开始和停止,除了定义片段时间之外无需手动操作。
将 preload 设置为 none 可能会有帮助,但即使这样浏览器也可以加载完整文件。你可以深入研究 Media Source Extensions控制缓冲区如何加载和缓存数据,但它是一个 wide topic .
或者使用 Range header 结合片段 uri 通过 XHR 加载,但您需要提前了解有关音频文件的一系列详细信息,以便确定字节范围,例如比特率、 channel 等。
关于javascript - 如何设置只下载部分文件的超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37582583/