【发布时间】:2016-03-26 23:50:41
【问题描述】:
我在服务器端有一个带有 laravel(流明)的 ios 应用程序。我正在尝试在应用程序上播放服务器中的视频。
我使用的播放器通过直接链接(例如 vine 视频链接)播放视频,但是当我在本地服务器上保存相同的 vine 视频时,应用程序不会播放视频。事实上,当我用我的 api 路由尝试视频时,令人惊讶的是它会在 Chrome 上播放视频!但在应用程序端,我收到错误:
服务器配置不正确 - 12939
(请注意,如果我将相同的 mp4 文件复制到 xCode 项目中,将其添加到“复制捆绑资源”中,并尝试使用 fileWithPath,它可以工作。所以我相信这肯定是由服务器引起的,而不是视频文件/编解码器。)
我的路线: $app->get('/player/{filename}', 'PlayerController@show');
方法:
public function show ($filename)
{
$this->playVideo($filename, 'recordings');
}
public function playVideo($filename, $showType)
{
if (file_exists("../uploads/" . $showType . "/" . $filename)) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$type = finfo_file($finfo, "../uploads/" . $showType . "/" . $filename);
header("Content-Type: " . $type);
readfile("../uploads/" . $showType . "/" . $filename);
}
}
回顾一下我的问题,视频正在 Chrome 上播放,但收到“12939”- 移动应用上的“服务器配置不正确”。
编辑:
我尝试使用 Apple Documentations 中提到的这个:
curl --range 0-99 http://myapi.dev/test.mp4 -o /dev/null
但是文档说:
“如果工具报告它下载了 100 个字节,则媒体服务器正确处理了字节范围请求。如果它下载了整个文件,您可能需要更新媒体服务器。”
我收到了 100%,它为我下载了整个文件,所以我相信这是我的问题。但我不确定如何克服这个问题?我究竟做错了什么?我该怎么办?
【问题讨论】:
-
可能是范围请求问题。检查此线程:stackoverflow.com/questions/3397241/…
-
我的达到 100% 并完成。它不会在任何时候停止,它似乎会下载整个文件(即使我看不到在此路径上创建的任何文件)。这是否意味着,这是我的问题? :/在这一点上我完全糊涂了。 编辑: 刚刚意识到我在路径末尾放置的任何文件名都使用代码 [
curl --range 0-99 http://example.com/video.mp4 -o /dev/null] 接收 100%,即使具有该文件名的文件不存在!跨度>
标签: php ios laravel video lumen