在iOS上的音频元素中播放mp3文件

时间:2017-12-21 17:22:54

标签: ios iphone html5 audio

我通过PHP提供.mp3文件并将它们嵌入audio html5元素中。我不能让这个适用于任何iOS设备(目前在iPhone 6s上测试iOS 9)。基本上当你按下播放时它会显示“直播”并且没有音频播放。如果我尝试下载文件而不是快速打开(我认为)并且什么都不做。

以下是我如何提供文件

    $fileName = $queryParams['name'];
    $file = __DIR__ . "/../content/$fileName";    

    if (file_exists($file)) {
        $len = filesize($file);
        $shortlen = $len - 1;
        header('Content-Range: bytes 0-'.$shortlen.'/'.$len);
        header('Content-Description: File Transfer');
        header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"); 
        header('Content-Disposition: attachment; filename='.basename($file));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        header('Accept-Ranges: bytes');
        ob_clean();
        flush();
        readfile($file);
        exit;
    }

这就是浏览器开发人员工具中的样子

Accept-Ranges:bytes
Cache-Control:must-revalidate, post-check=0, pre-check=0
Connection:keep-alive
Content-Description:File Transfer
Content-Disposition:attachment; filename=audiofile.mp3
Content-Length:12359460
Content-Range:bytes 0-12359459/12359460
Content-Transfer-Encoding:binary
Content-Type:audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3
Date:Thu, 21 Dec 2017 17:14:57 GMT
Expires:0
Pragma:public
Server:nginx/1.12.2

这是HTML5

<audio controls="" preload="none" src="/content?name=audiofile.mp3"></audio>

我得到的唯一信息是

  

失败(插件处理负载)

我不知道这意味着什么或做什么。

0 个答案:

没有答案