【发布时间】:2021-03-22 20:06:40
【问题描述】:
我正在尝试使用 html5 音频标签播放音频文件。
很好玩……
但由于某种原因,要求浏览器为源发出请求,必须包含浏览器(在我的情况下为 safari)未添加的特定标头。 (我看到 chrome 添加了)
标头为:Accept-encoding: gzip
我怎样才能做到这一点?
我不想事先下载整个文件...我想要音频标签来处理它,带有一个新的标题。
document.getElementById("audio").load();
document.getElementById("audio").play();
<audio id="audio" src="https://upload.wikimedia.org/wikipedia/commons/transcoded/7/7b/FurElise.ogg/FurElise.ogg.mp3"> <audio>
再一次,当这段代码运行时,我只想修改为此发出的每个请求的标头...
注意:
当您添加源并加载到 chrome 中时,浏览器会发出“范围请求”,要求媒体文件的后续部分,以便它可以在一些数据可用时立即开始播放,但是,我的 CDN using 要求这些请求具有此特定标头,问题在于 chrome 中此标头是由 chrome 本身添加的,而在 safari 中则不是,因此我想拦截浏览器在媒体元素上调用 load() 时发出的这些请求并添加标题。
我不想在付款前下载整个文件,我知道这行得通,但这违背了目的。
【问题讨论】:
-
你尝试了什么?错误信息是什么?
-
我尝试了什么?我将 src 添加到音频标签,这就是我尝试过的!我不知道如何为我问的音频标签设置自定义标头,错误消息是什么?没有错误,问题是寻找一种方法来实现我不知道的事情,我已经阅读了一些人们说不可能的答案
-
@ceving 我想你很困惑,我不是自己发出任何请求,当我调用 load() 时浏览器正在这样做,我想拦截它来修改它!
-
一个问题需要minimal reproducible example。对于 MCVE,它是相关的,它可以工作。否则无法重现。
-
@cerving 好的,我会记住的,感谢您编辑问题!
标签: javascript html5-video html5-audio akamai