Я пытаюсь отобразить список воспроизведения HTTP Live Streaming (файл m3u8), который создается Laravel. Для этого у меня есть представление (playlist.blade.php):
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
@foreach($videos as $video)
#EXTINF:4,
/videos/watch/{{ $video->file }}.ts
@endforeach
#EXT-X-ENDLIST
В моем контроллере я использую следующий код:
return Response::view('compilations.playlist', compact('videos'))->header('Content-Type', 'application/x-mpegurl');
Чтобы составить представление с правильными заголовками.
Когда я загружаю файл на статический сервер, такой как nginx, с правильным типом mime, файл отображается в браузере и работает с Apple mediastreamvalidator
. Когда я пытаюсь получить доступ к файлу через сервер Laravel, браузер загружает файл автоматически (вместо того, чтобы отображать его), и он не работает с расширением mediastreamvalidator
.
Как я могу создать представление с правильными заголовками и заставить его вести себя так, как сервер nginx (отображать в браузере, правильно загружать в инструменте проверки/видеоплеерах)?
php artisan serve
(или когда использую nginx + php-fpm). Дело в том, что когда я использую Postman или cURL для доступа к файлу, я получаю правильный заголовокContent-Type
в ответе, поэтому я не думаю, что это связано с этой ошибкой. - person GTF   schedule 06.10.2014Response::view
и заставить его работать правильно, не сообщая браузеру о загрузке файла. - person GTF   schedule 06.10.2014