I want to stream audio files using laravel as backend. I am going to refer the stream url in android app. Can anyone share some pointers around streaming in laravel. I tried with response download and set all the headers for audio file. The web browser can handle file download as stream but android needs streaming service.
As Symfony HttpFoundation doc. says in the serving file paragraph:"if you are serving a static file, you can use a BinaryFileResponse"
The .mp3 files I need to serve are statics in the server and stored in "/storage/songs/" so I decided to use the BinaryFileResponse, and the method for serving .mp3 became:
use Symfony\Component\HttpFoundation\BinaryFileResponse;
[...]
public function getSong(Song $song) {
$path = storage_path().$song->path.".mp3");
$user = \Auth::user();
if($user->activated_at) {
$response = new BinaryFileResponse($path);
BinaryFileResponse::trustXSendfileTypeHeader();
return $response;
}
\App::abort(400);
}
The BinaryFileResponse automatically handle the requests and allow you to serve the file entirely (by making just one request with Http 200 code) or splitted for slower connection (more requests with Http 206 code and one final request with 200 code).
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community