Я пытаюсь создать простой 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);
}
}}