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

is it possible to disable mp3 controls when loading an mp3 file via http headers using php

我正在为我的音乐创建一个组合网站,并希望允许用户播放我的歌曲而他们无法看到 source/download mp3 文件。

我正在为这个项目使用 PHP 并通过 HTTP headers 加载文件。

<?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 中)。

提前感谢您的帮助

I'm creating a portfolio website for my music and want to allow users to play my songs without them being able to see the source/download the mp3 files.

那是不可能的。

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

When the page loads, my mp3 plays. However, I can't seem to figure out how to display any HTML on the page (and more importantly, how to place the audio controls in a div).

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

"However, I can't seem to figure out how to display any HTML on the page (and more importantly, how to place the audio controls in a div)."

作为示例...

将您的 PHP 代码保存在名为 getFile.php 的文件中。 现在使用如下代码创建一个 HTML 页面,并使用 PHP 文件作为 <audio tag> 中的源文件。
您可以使用自己的扩展 HTML "other stuff"代码。

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