iPhone 中缺少 HTTP_RANGE

发布于 2024-10-11 15:43:09 字数 382 浏览 1 评论 0原文

我正在尝试将 MP4 视频传送到 iPhone,但正如你们中许多人可能知道的那样,它需要稍微不同的方法来实现。 一个关键方面是检测 $_SERVER{"HTTP_RANGE'],如 http:// /mobiforge.com/developing/story/content-delivery-mobile-devices 和其他众多 StackOverflow 答案。

我为 $_SERVER 打印了一份文件,但在 iOS 模拟器和真正的 iPhone 中没有找到 HTTP_RANGE。 有人能为我照亮吗?

谢谢!

I'm trying to deliver an MP4 video to iPhone, but as many of you might have known, it requires a slightly different method to do it.
One key aspect is to detect $_SERVER{"HTTP_RANGE'] as shown in http://mobiforge.com/developing/story/content-delivery-mobile-devices and other numerous StackOverflow answers.

I did a print for $_SERVER and didn't find HTTP_RANGE in iOS Simulator and a real iPhone.
Can someone shed a light for me?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薄荷→糖丶微凉 2024-10-18 15:43:09

如果 iOS 设备请求 MP4,它会发出多个请求:

  1. 前 2 个字节。我认为这是一个测试,看看服务器是否会遵守字节范围请求。
  2. 文件中间的一系列字节,但不是全部
  3. 重复步骤 2,直到播放完视频

您实际上对此没有任何控制权。服务器必须能够正确处理字节范围请求,否则 iOS 设备将无法播放视频。

如果您让 iPhone 模拟器请求一个将显示 HTTP 请求变量的纯 HTML 页面,则它不会有字节范围请求,因为 iOS Safari 没有发出字节范围请求。它仅对 MP4 文件执行此操作。

If an iOS device is requesting an MP4, it makes multiple requests:

  1. The first 2 bytes. I think this is a test to see if the server will comply with byte range requests.
  2. A range of bytes in the middle of the file, but not all of it
  3. Repeat step 2 until finished playing video

You don't really have any control of that. The server must be capable of servering byte range requests properly, or the iOS device will not be able to play the video.

If you have the iPhone simulator request a plain HTML page that will display the HTTP request variables, it won't have the byte range request because iOS Safari did not make one. It only does that for MP4 files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文