2010-04-14 1 views
3

Я пытаюсь создать простой SWF-плеер для видеоплеера с использованием среды с открытым исходным кодом в Flex 4. Я хочу сделать его динамически масштабированным в зависимости от размеров видео, вход пользователя. Я следую инструкциям на the Adobe help site, но видео, похоже, не масштабируется должным образом. В зависимости от размера иногда видеоролики играют больше, чем пространство, выделенное на веб-странице, а иногда и меньше. Единственный способ, которым я смог заставить его работать должным образом, - это включить тег метаданных SWF, жестко кодирующий ширину и высоту, но я не могу использовать это, если я хочу сделать проигрыватель динамически. Мой код:Как я могу масштабировать OSMF-плеер в ActionScript 3/Flex

package { 
import flash.display.Sprite; 
import flash.events.Event; 

import org.osmf.media.MediaElement; 
import org.osmf.media.MediaPlayer; 
import org.osmf.media.URLResource; 
import org.osmf.containers.MediaContainer; 
import org.osmf.elements.VideoElement; 
import org.osmf.layout.LayoutMetadata; 

public class GalleryVideoPlayer extends Sprite { 
    private var videoElement:VideoElement; 
    private var mediaPlayer:MediaPlayer; 
    private var mediaContainer:MediaContainer; 

    private var flashVars:Object; 

    public function GalleryVideoPlayer() { 
     if (stage) init(); 
     else addEventListener(Event.ADDED_TO_STAGE, init); 
    } 

    private function init(e:Event = null):void { 
     removeEventListener(Event.ADDED_TO_STAGE, init); 

     flashVars = loaderInfo.parameters; 

     mediaPlayer = new MediaPlayer(); 

     videoElement = new VideoElement(new URLResource(flashVars.file)); 

     mediaContainer = new MediaContainer(); 

     var layoutMetadata:LayoutMetadata = new LayoutMetadata(); 
     layoutMetadata.width = Number(flashVars.width); 
     layoutMetadata.height = Number(flashVars.height); 

     videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layoutMetadata); 

     mediaPlayer.media = videoElement; 
     mediaContainer.addMediaElement(videoElement); 

     addChild(mediaContainer); 
    } 
}} 

ответ

-1

Я не знаю много о прогибается, но я использовал игрок OSMF назвал StrobeMediaPlayback и заливал его на HTML-странице. Существует мотив javascript, который вы можете вызвать с помощью функции ExternalInterface.call() в actionscript (внутри кода проигрывателя).

Итак, я написал функцию javascript для изменения размера swf (может быть легко с помощью jquery) и вызвал его из ActionScript всякий раз, когда видео было масштабироваться.

Посмотрите, поможет ли это вам.

 Смежные вопросы

  • Нет связанных вопросов^_^