2013-02-08 61 views
0

我有一個要求,我需要顯示4個視頻播放內容並行,我通過並行元素實現它,但這裏的主要挑戰是,我想顯示所有4個不同的視頻面板和一個普通的控制欄來播放/暫停視頻。 當我試圖將mediaplayer作爲Uicomponent添加到hbox/vbox其拋出的運行時異常。OSMF播放器有4個視頻和1個控制條

請幫幫我。

+0

除非您告訴我們什麼是例外情況,否則我們無能爲力。顯示一些相關的代碼總是有幫助的。祝你好運! – 2013-02-11 00:15:20

+0

謝謝sunil的迴應。我將分享片段。 – shyamshyre 2013-02-11 05:18:21

回答

0
protected function initPlayer():void 
     { 
      // Create a mediafactory instance 



      var leftcontainer:Panel = new Panel(); 
      leftcontainer.percentHeight=50; 
      leftcontainer.percentWidth=50; 




      mediaFactory = new DefaultMediaFactory(); 

      //Marker 1: Create a LayoutMetaData object stup up to even out the 2 parellel streams initially 
      var layoutData:LayoutMetadata = new LayoutMetadata(); 
      layoutData.percentWidth = 50; 
      layoutData.percentHeight = 50; 
      layoutData.scaleMode = ScaleMode.LETTERBOX; 

      //Marker 2: Create the left side Media Element to play the LOGO_VID and apply the meta-data 
      var leftElement:MediaElement = mediaFactory.createMediaElement(new URLResource(LOGO_VID)); 
      leftElement.metadata.addValue(LayoutMetadata.LAYOUT_NAMESPACE, layoutData); 

      //Marker 3: Create the right side Media Element to play the STREAMING_PATH and apply the meta-data 
      var rightElement:MediaElement = mediaFactory.createMediaElement(new URLResource(STREAMING_PATH)); 
      rightElement.metadata.addValue(LayoutMetadata.LAYOUT_NAMESPACE, layoutData);   

      //Marker 4: Create the ParallelElement and add the left and right elements to it 
      var parallelElement:ParallelElement = new ParallelElement(); 
      parallelElement.addChild(leftElement); 
      parallelElement.addChild(rightElement); 

      //Marker 5: Reinstantiate the layoutData to clear it out and set the layout data for the parallel element 
      layoutData = new LayoutMetadata(); 
      layoutData.layoutMode = LayoutMode.HORIZONTAL; 
      layoutData.horizontalAlign = HorizontalAlign.CENTER; 
      layoutData.verticalAlign = VerticalAlign.MIDDLE; 
      layoutData.width = 800; 
      layoutData.height = 600; 
      parallelElement.metadata.addValue(LayoutMetadata.LAYOUT_NAMESPACE, layoutData); 

      //the simplified api controller for media 
      player = new MediaPlayer(parallelElement); 



      //the container (sprite) for managing display and layout 
      container = new MediaContainer(); 
      container.addMediaElement(parallelElement); 


      //Adds the container to the stage 

      var ui:UIComponent = new UIComponent(); 
      ui.addChild(container as DisplayObject); 
      leftcontainer.addElement(ui); 

      this.addChild(container); 
     } 
+0

嗨sunil這是代碼。我正在嘗試將mediacontainer實例添加到面板,因爲我希望看到2個不同面板中播放的2個視頻。根據上面的代碼,它不會拋出任何異常,但顯示一個空白屏幕。 – shyamshyre 2013-02-11 05:24:26

0

您也可以下載OSMF軀幹和有在

樣本文件夾這一個項目ExamplePlayer是在有許多不同

的方式來播放視頻。下面的代碼是從那裏

    var parallelElement:SynchronizedParallelElement = new SynchronizedParallelElement(); 
         var layout:LayoutMetadata = new LayoutMetadata(); 
         layout.horizontalAlign = HorizontalAlign.CENTER; 
         layout.verticalAlign = VerticalAlign.MIDDLE; 
         parallelElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 

         var mediaElement1:MediaElement = new VideoElement(new URLResource(REMOTE_PROGRESSIVE)); 
         layout = new LayoutMetadata(); 
         layout.left = 0; 
         layout.top = 0; 
         layout.percentWidth = 50; 
         layout.percentHeight = 50; 
         mediaElement1.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 
         parallelElement.addChild(mediaElement1); 

         var mediaElement2:MediaElement = new VideoElement(new URLResource(REMOTE_STREAM)); 
         layout = new LayoutMetadata(); 
         layout.left = 0; 
         layout.bottom = 0; 
         layout.percentWidth = 50; 
         layout.percentHeight = 50; 
         mediaElement2.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 
         parallelElement.addChild(mediaElement2); 

         var mediaElement3:MediaElement = new VideoElement(new URLResource(REMOTE_STREAM)); 
         layout = new LayoutMetadata(); 
         layout.right = 0; 
         layout.top = 0; 
         layout.percentWidth = 50; 
         layout.percentHeight = 50; 
         mediaElement3.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 
         parallelElement.addChild(mediaElement3); 

         var mediaElement4:MediaElement = new VideoElement(new URLResource(REMOTE_PROGRESSIVE2)); 
         layout = new LayoutMetadata(); 
         layout.right = 0; 
         layout.bottom = 0; 
         layout.percentWidth = 50; 
         layout.percentHeight = 50; 
         mediaElement4.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 
         parallelElement.addChild(mediaElement4); 

         return parallelElement; 

提取試試這個,你將獲得4視頻播放或下載的樣本,並使用FlashBuilder運行項目。

相關問題