将音频源转换为“一次性使用” blob

时间:2019-08-09 06:15:49

标签: javascript php html

因此,我想让用户从服务器直接下载 MP3 文件更加困难(只是直接进入源文件的URL)。我一直在环顾四周,从收集的资料来看,一个很好的方法是将Audio对象转换为一次性使用的Blob(类似于 YouTube 做到)。

作为一个例子,像这样:

<!-- directly accessible, unobfuscated url -->
<audio src="www.mywebsite.com/media.mp3"></audio> 

将成为:

<!-- 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;
}

现在我正在查看this答案(以及其他几个答案),但是它们要么涉及使用从input中选择的文件,要么就是使用该文件作为Base64字符串并将 that 转换为Blob,我不知道该怎么做,也很难想象在客户端上要完成的工作很繁重。

基本上,我需要做的就是将url转换为Blob,该会话只能在该会话中使用一次(不能在另一个选项卡中直接访问-仅在播放一次时使用) (例如)。

注意::我标记了PHP,因为这也可能是服务器端的问题,如果有必要,请随时更正

0 个答案:

没有答案