Как я могу масштабировать OSMF-плеер в ActionScript 3 / Flex - PullRequest
3 голосов
/ 14 апреля 2010

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

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 Ответ

0 голосов
/ 23 января 2013

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

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

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

...