我有一个嵌入式mp3播放器,我正在网页中运行。当我加载物理 mp3 的路径作为文件 url 时,它工作得很好,但是当我尝试从 php 端点加载 mp3 二进制数据时,它失败了。
以下是我通过PHP输出MP3数据所做的工作:
//Begin writing headers
header( 'Pragma: public' );
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Cache-Control: public' );
header( 'Content-Description: File Transfer' );
header( 'Content-Type:audio/mpeg');
header( 'Content-Disposition: inline;');
header( 'filename=SoundFile.mp3' );
header( 'Content-Transfer-Encoding: binary' );
//supply the length
$len = strlen($res['ReturnValue']);
header( 'Content-Length: ' . $len );
echo $res['ReturnValue']; exit();
// $res['ReturnValue'] is the actual binary data of the mp3
此外,当我在浏览器中运行该php代码时,它会导致正确名称和文件大小的文件下载,但是文件本身不会在任何内容(iTunes/winamp/等(上播放,就好像它已损坏一样。
我做错了什么,导致它无法在嵌入式 mp3 播放器中播放?
字节数据没有正确输出给我,因此,我的标头不是问题。