2015-05-01 3 views
0

Я передаю жестко закодированное значение rtmp url & название потока для потокового видео в компоненте VideoDisplay флеш-плеера. он работает хорошо, и я могу отображать потоковое видео на HTML-странице.Передача параметра с HTML на проигрыватель Flex не работает

<s:VideoDisplay width="100%" height="100%" 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 width="100%" height="100%" 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); 
+1

Если вы просматриваете возвращенную HTML-страницу, какие значения вы видите в host = "" и steamName = ""? – Ma3x

+0

У меня больше нет идеи об отладочном гибком коде. но я проверяю значение переменной Flash rtmpUrl и rtmpstreamName, помещая его в качестве фона в flash-плеере, и он такой же, как требуется. но потоковое видео не работает. –

+0

Что такое объект или код для встраивания? можете ли вы разместить его здесь? – ketan

ответ

0

Я думаю, что вы забыли параметр 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 загрузите эту функцию на приложение licationComplete.