iOS 10 AVPlayer不会从没有扩展名的URL流式传输视频,也不会将视频/ mp4作为内容类型

时间:2016-12-08 23:21:49

标签: ios video mime-types avplayer avplayerviewcontroller

目前,我们使用标准AVPlayer通过AVPlayerViewController播放视频。我们正在以https://ourdomain/media/mediaid?jwt=authTokenHere格式从网址流式传输视频。如你所见,网址没有扩展名;但是,在有效负载上设置标头以指示响应是视频。

HTTP Reponse Headers

虽然这些链接可以让桌面Safari和Chrome中的视频播放得很好,但在我们的应用中,它无法通过iOS AVPlayer播放。是否有AVPlayer期望的特定格式?

2 个答案:

答案 0 :(得分:2)

好的 - 最终发现答案是多方面的。这就是我需要做些什么才能让事情发挥作用。

  1. 文件确实需要扩展。
  2. 服务器没有 配置正确。它需要提供渐进式下载 通过回应一系列标题做出回应。
  3. 通过更新我们的后端以提供此响应并将正确的扩展名附加到视频文件,我们现在正按预期流式传输到list = [] with open(inputfile) as f: for line in f: if line.startswith('>'): parts = line.split('|') else: parts = sequence list.append(parts) infile = open('test.txt', 'w') for item in list: infile.write("%s\n" % item) 。感谢所有提供技巧的人!

答案 1 :(得分:1)

AVURLAsset需要文件扩展名才能生效。不幸的是,从iOS 5开始,已经有一些雷达针对同一个问题开放了,但它似乎甚至没有在iOS 10上更新。

雷达链接:

AVURLAsset should not require a file extension to work

AVURLAsset should not require a file extension to work

WorkAround / Hack:

循环播放可播放的MIME类型,并使用扩展名创建指向实际文件的符号链接,并检查它们是否可播放。

注意:

  • 当应用程序进入后台时,将删除符号链接
  • 创建符号链接检查this SO回答