iOS 10 AVPlayer不会从没有扩展名的URL流式传输video,也不会将video/ mp4作为内容类型
目前,我们通过AVPlayerViewController
使用标准AVPlayerViewController
来播放video。 我们从url流式传输video,格式为https:// ourdomain / media / mediaid?jwt = authTokenHere 。 如你所见,url没有扩展名; 但是,在有效负载上设置标头以指示响应是video。
虽然链接导致video在桌面Safari和Chrome中播放得很好,但在我们的应用程序中它不能通过iOS的AVPlayer
播放。 是否有一些AVPlayer
期望的特定格式?
好吧 – 结果发现答案是多方面的。 这就是我需要做的事情才能让事情顺利进行。
- 文件确实需要扩展。
- 服务器配置不正确。 它需要通过响应一系列标头来提供渐进式下载响应。
通过更新我们的后端以提供此响应并将正确的扩展名附加到video文件,我们现在正按预期流式传输到AVPlayer
。 感谢所有提供提示的人!
AVURLAsset
需要文件扩展名才能工作。 不幸的是,从iOS 5开始,已经有一些雷达针对同一个问题开放了,但似乎它甚至没有在iOS 10上更新。
雷达链接:
AVURLAsset不需要文件扩展名才能工作
AVURLAsset不需要文件扩展名才能工作
WorkAround / Hack:
循环播放可播放的MIME类型,并使用扩展名创建指向实际文件的符号链接,并检查它们是否可播放。
注意:
- 当应用程序进入后台时,将删除符号链接
- 要创建符号链接,请检查此 SO答案