Javascript 将音频源转换为“a”;“使用一次”;斑点
因此,我想让用户从服务器直接下载MP3文件(只需直接转到源代码的Javascript 将音频源转换为“a”;“使用一次”;斑点,javascript,php,html,Javascript,Php,Html,因此,我想让用户从服务器直接下载MP3文件(只需直接转到源代码的URL)。我一直在四处寻找,从我收集的信息来看,一个很好的方法是将音频对象转换为一次使用Blob(类似于YouTube的方式) 例如,类似以下内容: <!-- directly accessible, unobfuscated url --> <audio src="www.mywebsite.com/media.mp3"></audio> 现在我正在查看答案(以及其他几个),但它们都涉及到使
URL
)。我一直在四处寻找,从我收集的信息来看,一个很好的方法是将音频
对象转换为一次使用Blob
(类似于YouTube的方式)
例如,类似以下内容:
<!-- directly accessible, unobfuscated url -->
<audio src="www.mywebsite.com/media.mp3"></audio>
现在我正在查看答案(以及其他几个),但它们都涉及到使用从输入中选择的文件,或者,正如这一个,使用该文件作为Base64
字符串,并将其转换为Blob
,我不知道该怎么做,想象一下在客户端这是一项有点繁重的任务
基本上,我所需要做的就是将url
转换为一个Blob
,该Blob只能在该会话中使用一次(不能在另一个选项卡中直接访问,例如,仅在播放该选项卡时使用)
注意:我标记了PHP
,因为这可能也是一个服务器端问题,如有必要,请随意更正。您不能将地址“blob”为源地址。阅读。@MarkusZeller我知道,你只能在对象上滴一滴。我只是好奇如何做到这一点,并确保它只使用一次:)你不能“blob”一个地址作为源。阅读。@MarkusZeller我知道,你只能在对象上滴一滴。我只是好奇如何做到这一点,并确保它只使用一次:)
<!-- visiting the link would lead to a 'your file was not found' page
and the original url is now obfuscated -->
<audio src="blob:http://www.mywebsite.com/6fc4f9d2-035a-4999-b330-96da04c0f6a8"></audio>
var url = "http://www.mywebsite.com/media.php"; // media.php points to an mp3 file
var audio = null; // just for simplicity sake - i'm not actually doing it like this
if(!audio){
audio = new Audio(url);
} else {
audio.pause();
audio.src = url;
}