使用php通过http标头加载mp3文件时,是否可以禁用mp3控件

时间:2019-05-28 23:25:13

标签: php http-headers mp3

我正在创建一个音乐作品集网站,并希望允许用户播放我的歌曲,而他们却无法看到源文件/无法下载mp3文件。

我为此项目使用PHP,并通过HTTP标头加载文件。

<?php
 $mp3 ='72vox.mp3';
 if(file_exists($mp3)) {
   header('Content-Type: audio/mpeg');
   header('Content-Disposition: inline; filename="mp3_file.mp3"');
   header('Content-length: '. filesize($mp3));
   header('Cache-Control: no-cache');
   header('Content-Transfer-Encoding: chunked');
   readfile($mp3);
   exit;
  }
?>

页面加载后,我的mp3会播放。但是,我似乎无法弄清楚如何在页面上显示任何HTML(更重要的是,如何将音频控件放置在div中)。

感谢您的任何帮助

2 个答案:

答案 0 :(得分:2)

  

我正在创建一个音乐作品集网站,并希望允许用户播放我的歌曲,而他们却无法看到源文件/无法下载mp3文件。

那不可能。

在这种情况下,PHP脚本的URL实际上是音频文件的URL。

  

页面加载后,我的mp3会播放。但是,我似乎无法弄清楚如何在页面上显示任何HTML(更重要的是,如何将音频控件放置在div中)。

这与您提供文件的方式无关。您需要使用<audio>标签或适当的JavaScript制作页面。当您转到此URL时,它不是服务器上的“页面”,而是浏览器对MP3文件的默认处理。其他浏览器只会下载它或在用户的默认音频播放器中打开它。

答案 1 :(得分:0)

  

“但是,我似乎无法弄清楚如何在页面上显示任何HTML(更重要的是,如何将音频控件放置在div中)。”

作为示例 ...

将PHP代码保存在名为getFile.php的文件中。 现在,使用下面的代码创建HTML页面,并在<audio tag>中使用PHP文件作为源。
您可以使用自己的“其他内容”代码扩展HTML。

<!DOCTYPE html>
<html>
<body>

<div id="div_myAudio">
    <audio id="myAudio" controls>
    <source crossorigin="anonymous" src="getFile.php" type="audio/mpeg">
    </audio>
</div>

<div id="div_myOtherStuff">

    My "Other Stuff" (HTML code) goes here or anywhere inside this document "body" tag...

</div>

</body>
</html>