我有一個要求,我需要顯示4個視頻播放內容並行,我通過並行元素實現它,但這裏的主要挑戰是,我想顯示所有4個不同的視頻面板和一個普通的控制欄來播放/暫停視頻。 當我試圖將mediaplayer作爲Uicomponent添加到hbox/vbox其拋出的運行時異常。OSMF播放器有4個視頻和1個控制條
請幫幫我。
我有一個要求,我需要顯示4個視頻播放內容並行,我通過並行元素實現它,但這裏的主要挑戰是,我想顯示所有4個不同的視頻面板和一個普通的控制欄來播放/暫停視頻。 當我試圖將mediaplayer作爲Uicomponent添加到hbox/vbox其拋出的運行時異常。OSMF播放器有4個視頻和1個控制條
請幫幫我。
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);
}
嗨sunil這是代碼。我正在嘗試將mediacontainer實例添加到面板,因爲我希望看到2個不同面板中播放的2個視頻。根據上面的代碼,它不會拋出任何異常,但顯示一個空白屏幕。 – shyamshyre 2013-02-11 05:24:26
您也可以下載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運行項目。
除非您告訴我們什麼是例外情況,否則我們無能爲力。顯示一些相關的代碼總是有幫助的。祝你好運! – 2013-02-11 00:15:20
謝謝sunil的迴應。我將分享片段。 – shyamshyre 2013-02-11 05:18:21