我可以从控制器提供我的mp3文件,但是我的控制器提供的文件不会在ios AvPlayer中播放(使用url)。我确信我的客户端代码很好,因为它可以播放来自其他服务器的歌曲。你也可以从我最后写的链接中检查我的服务器,看看我的控制器是在提供文件。
我应该为AvPlayer的响应添加任何特定标头以支持我的网址吗?
我的laravel控制器代码现在:
$response = new BinaryFileResponse($file);
BinaryFileResponse::trustXSendfileTypeHeader();
return $response;
这是一个示例链接,它的工作原理如何http://s3.amazonaws.com/kargopolov/BlueCafe.mp3
这是我的无效http://projectm.e-rundev.ir/api/song/download/11.mp3
任何指示都会提前得到赞赏
答案 0 :(得分:2)
这是有效的代码
$file = storage_path() . '/upload/song/' . $filename;
$mime_type = "audio/mpeg";
$headers = array(
'Accept-Ranges: 0-' . (filesize($file) -1) ,
'Content-Length:'.filesize($file),
'Content-Type:' . $mime_type,
'Content-Disposition: inline; filename="'.$filename.'"'
);
$fileContents = File::get($file);
return Response::make($fileContents, 200, $headers);