从PHP脚本获取音频文件时,更改JavaScript音频对象的当前时间

从PHP脚本获取音频文件时,更改JavaScript音频对象的当前时间,javascript,php,header,mp3,Javascript,Php,Header,Mp3,我已经构建了一个PHP脚本,它从public_html目录外发送*.MP3文件, 它工作正常并发送文件。问题是我有一个JavaScript脚本,它应该更改音频文件audioFile.currentTime=25;的当前时间;。 当我这样做时,从public_html目录中获取文件,它会工作: // JavaScript: var audioFile = new Audio("https://www.website.com/files/audioFile.mp3"); audioFile.play

我已经构建了一个PHP脚本,它从public_html目录外发送*.MP3文件, 它工作正常并发送文件。问题是我有一个JavaScript脚本,它应该更改音频文件audioFile.currentTime=25;的当前时间;。 当我这样做时,从public_html目录中获取文件,它会工作:

// JavaScript:
var audioFile = new Audio("https://www.website.com/files/audioFile.mp3");
audioFile.play();
audioFile.currentTime = 15;
但是,当我尝试从下面的PHP脚本获取文件时,它会发送文件OK。但是,我不能使用JavaScript更改当前时间

<?php
     // This PHP file is public www.website.com/getAudioFile.php/
     $fileLocation = "../audioFiles/audioFile.mp3";
     if (file_exists($fileLocation))
     {
          header('Content-type: audio/mpeg');
          header('Content-Disposition: inline; filename="' . $filename . '"');
          header('Content-Transfer-Encoding: binary');
          header('Content-Length: ' . filesize($file));
          readfile($file);
     }

?>
这是我试图在其中更改音频文件currentTime的JavaScript:

    <script>
         var audioFile = new Audio("www.website.com/getAudioFile.php");
         audioFile.play();
         audioFile.currentTime = 15;
    </script>
每次使用object.currentTime=15时,音频文件都会从一开始播放

如果有人知道我应该发送什么标题或我应该做什么,请告诉我如何解决我的问题。

也许您应该从音频组件和此回调集合currentTime属性中绑定canplay事件


在我发布这个问题后不久,我找到了问题的解决方案。 为了使脚本工作,您需要添加标题“Accept-Ranges:bytes”

像这样:

<?php
     // This PHP file is public www.website.com/getAudioFile.php/
     $fileLocation = "../audioFiles/audioFile.mp3";
     if (file_exists($fileLocation))
     {
          header('Content-type: audio/mpeg');
          header('Content-Disposition: inline; filename="' . $filename . '"');
          header('Content-Transfer-Encoding: binary');
          header('Accept-Ranges: bytes');
          header('Content-Length: ' . filesize($file));
          readfile($file);
     }

?>

谢谢你的回答,但在我发布这个问题后,我马上找到了解决方案。如果您遇到同样的问题,只需在PHP脚本中添加Accept-Ranges标题“Accept-Ranges:bytes”。@JosephVigdorovich,如果您有答案,请将其作为此问题的答案发布,以便每个人都能分享您的知识。这就是叠加叠加的目的。谢谢