我需要从服务器流式传输音频文件,但我不想要这样:
下载文件并将其保存在PC上(由于版权问题)
我尝试了这里提出的有趣解决方案:
Streaming an MP3 on stdout to Jplayer using PHP
我使用建议的代码创建了一个名为 music.php 的文件。
调用脚本music.php之后,从任何浏览器的URL栏中调用它,它将显示多媒体阅读器。戏剧开局出色。
然后只需右键单击,然后另存为... ,它会保存一个名为music.php的文件
但是此文件的内容是音频文件本身。因此,只要将其重命名为music.mp3,我就下载了原始的MP3:-/,这是我不希望发生的事情。
拜托,你有什么建议吗?
非常感谢你
最佳答案
but I no want that: the content is "savable" on the user's PC
这是不可能的。如果可以播放,则可以录制并保存。
the address & name of the original file, shouldn't be revealed
为什么?如果提供用于下载文件的脚本,则可以轻松下载该脚本。如果您打算防止人们直接链接到文件,则可以检查
Referer
header 以确保请求来自您的站点。但是,任何人仍然可以通过不发送该 header 来下载文件。您可能还会考虑Amazon S3的签名URL如何工作。 HMAC用于创建经过签名的URL,该URL在一段时间后会过期。该URL有效,但仅在应用程序授予用户访问权限的情况下,并且仅持续几分钟或您指定的任何时间。就您而言,如果仅允许已登录的用户欣赏音乐,则简单的 session 数据可能会有所帮助。您的问题并没有完全说明您要做什么,因此哪种情况取决于您自己。
But the content of this file, is the audio file itself. Thus just renaming it into music.mp3 and I downloaded the original MP3 :-/ which is what I no want it occurs.
同样,这是您无法避免的事情。即使您自行编写自己的流方法并使用Web Audio API或其他方法来播放它,捕获数据甚至以数字方式记录音频仍然是微不足道的。
关于audio - 如何在不下载和隐藏原始文件名/地址的情况下流式传输音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29117426/