apache-flex - 如何在 ActionScript 3/Flex 中缩放 OSMF 播放器

标签 apache-flex actionscript-3 video osmf

我正在尝试使用 Flex 4 中的开源媒体框架创建一个简单的视频播放器 SWF。我想让它根据用户输入的视频尺寸动态缩放。我正在按照 the Adobe help site 上的说明进行操作,但视频似乎无法正确缩放。根据大小的不同,有时播放的视频会比网页上分配的空间大,有时会比网页上分配的空间小。我能够让它正常工作的唯一方法是包含一个对宽度和高度进行硬编码的 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);
    }
}}

最佳答案

我不太了解 flex,但我使用了一个名为 StrobeMediaPlayback 的 OSMF 播放器并将其嵌入到 html 页面中。有一个 javascript 桥,您可以使用 actionscript 中的 ExternalInterface.call() 函数(在播放器代码中)调用它。

所以我编写了一个 javascript 函数来调整 swf 的大小(可以使用 jquery 轻松完成)并在视频必须缩放时从 actionScript 调用它。

看看这是否对您有帮助。

关于apache-flex - 如何在 ActionScript 3/Flex 中缩放 OSMF 播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635178/

相关文章:

apache-flex - 如何清除或重置 Adob​​e Flash Builder 的首选项?

flash - Flex声音提取并保存mp3

flash - 处理Flash中声音的最佳方法

javascript - 在 Javascript 中扫描文件夹内容

带有提示点的 HTML 5 视频

java - Remoteclass 类类型缺失

apache-flex - <fx :Script> and it all stops working 中 >500 行

flash - 迷笛|如何区分不同的弦乐器( fiddle 、大提琴、贝司)

actionscript-3 - 淡出影片剪辑的音量

html - 目前,元素视频上不允许使用属性类型。如何解决这个错误?