使用 PHP 通过 HTTP 标头加载 MP3 文件时是否可以禁用 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 中(。

提前感谢您的任何帮助

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

不可能。

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

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

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

"但是,我似乎无法弄清楚如何在页面上显示任何 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>

最新更新