将参数从 HTML 传递到 Flex 播放器不起作用
Posted
技术标签:
【中文标题】将参数从 HTML 传递到 Flex 播放器不起作用【英文标题】:Passing Parameter from HTML to Flex player not working 【发布时间】:2015-05-01 09:55:02 【问题描述】:我正在为 Flash 播放器的 VideoDisplay 组件中的实时流传输硬编码值 rtmp url 和流名称。它运行良好,我可以在 html 页面上显示视频流。
<s:VideoDisplay autoPlay="true" >
<s:source>
<s:DynamicStreamingVideoSource host="rtmp://X.X.X.X/live" streamType="live" >
<s:DynamicStreamingVideoItem streamName="rtmpStream"/>
</s:DynamicStreamingVideoSource>
</s:source>
</s:VideoDisplay>
但是当我从 HTML 页面传递参数时,它不会工作。它也没有给出任何错误,但无法在 HTML 页面上查看实时视频流。
[Bindable]
public var rtmpUrl:String;
[Bindable]
public var rtmpstreamName:String;
/* Assign values to new properties. */
private function initVars():void
rtmpUrl = FlexGlobals.topLevelApplication.parameters.rtmpUrl;
rtmpstreamName = FlexGlobals.topLevelApplication.parameters.rtmpstreamName;
Security.allowDomain("X.X.X.X");
rtmpUrl 将直播源和直播流名称传入rtmpstreamName,传递给视频显示组件。
<s:VideoDisplay autoPlay="true" >
<s:source>
<s:DynamicStreamingVideoSource host="rtmpUrl" streamType="live" >
<s:DynamicStreamingVideoItem streamName="rtmpstreamName"/>
</s:DynamicStreamingVideoSource>
</s:source>
</s:VideoDisplay>
HTML 嵌入代码:
var flashvars = ;
flashvars.rtmpstreamName = "streamName";
flashvars.rtmpUrl = "rtmp://X.X.X.X/live";
swfobject.embedSWF(
"deepdemo.swf", "flashContent",
"320", "240",
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
【问题讨论】:
如果您检查返回的 HTML 页面,您会在 host="" 和 steamName="" 中看到什么值? 我对调试 flex 代码一无所知。但我通过将 Flash 变量 rtmpUrl 和 rtmpstreamName 值作为标签放在 Flash 播放器中来检查它,它与所需的相同。但视频流不起作用。 对象或嵌入代码是什么?可以发在这里吗? 已更新。 【参考方案1】:我想你忘记了loaderInfo参数(见Application's documentation),所以initVars()函数变成了:
/* Assign values to new properties. */
private function initVars():void
rtmpUrl = FlexGlobals.topLevelApplication.loaderInfo.parameters.rtmpUrl;
rtmpstreamName = FlexGlobals.topLevelApplication.loaderInfo.parameters.rtmpstreamName;
Security.allowDomain("X.X.X.X");
如果您无权访问 loaderInfo,请在 applicationComplete 上加载此函数。
【讨论】:
以上是关于将参数从 HTML 传递到 Flex 播放器不起作用的主要内容,如果未能解决你的问题,请参考以下文章
ActionScript 3 Flash,Flex和Html传递参数