1

精简版:

我们的 Flash 应用是来自我们 CDN 的直播视频,从最近发布的 Flash Player 11.7 开始

背景:

我们有一个在浏览器中运行的 Flash 应用程序。我们在 Windows XP 和 Windows 7 上看到了 IE 8、9、10 的问题。32 位和 64 位。

当我们的应用程序向我们的 CDN 发出视频请求时,浏览器拒绝缓存它,这会导致高网络流量。缓存在 Flash Player 11.6 中运行良好。

问题:

使用 Fiddler,我们对比了 HTTP 请求的好坏情况。唯一的区别是,对于 Flash Player 11.7,原始请求包含:

Pragma: no-cache

我意识到这是特定于实现的,不受支持。请注意,我们希望这样。

我们正在使用OSMF 框架(2.0 版)并且可以访问源代码。

代码:

具体代码(相当抽象):

resource = new URLResource(url);
player = new MediaPlayer();
factory = new DefaultMediaFactory();
element = factory.createMediaElement(resource);
player.media = element;

问题:

有没有人可以解决这个问题?

想法包括:

  • 建议的 OSMF 补丁
  • Flash Player 的设置。IE 现在是否有可能将 FP 11.7 视为代理?
  • 其他想法。CDN 配置?

遗憾的是,我们无法选择使用不同的浏览器。

4

1 回答 1

0

简而言之,以下内容对我们有用:

改变这个:

var playerResource:URLResource = new URLResource(url); 

对此:

var playerResource:StreamingURLResource = new StreamingURLResource(url); 
playerResource.streamType = StreamType.LIVE_OR_RECORDED;

详细来说,我们知道 OSMF 2.0 在 Flash 11.6 和 Flash 11.7 之间没有变化。但是,似乎对默认值的解释streamType确实发生了变化,这可能是偶然的。Flash 11.7 将默认设置视为“实时流”并且不缓存。

通过streamType明确指定,事情会恢复正常。HTTP 请求中没有“Pragma: no-cache”。我们的应用程序调用一次视频,然后将其缓存。此修复也适用于原始环境 Flash 11.6。

于 2013-05-24T16:05:31.530 回答