Flex的VideoDisplay控件无法打开流

时间:2011-07-09 21:35:45

标签: flex actionscript-3 video-streaming

我正在尝试使用 FlashDevelop VideoDisplay播放媒体。这是我的申请来源:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
        import mx.events.VideoEvent;

        private function pause():void 
        {
            if (moo_player.state == VideoEvent.PLAYING)
                moo_player.pause(); else
            if (moo_player.state == VideoEvent.PAUSED)
                moo_player.play();
        }
    ]]>
    </mx:Script>

    <mx:Panel>
        <mx:VideoDisplay 
            source="bar.flv"
            width="640"
            height="480"
            maintainAspectRatio="true"
            id="moo_player"
            autoPlay="true"
            doubleClick="pause();" 
            doubleClickEnabled="true"
        />
    </mx:Panel>
</mx:Application>

问题是当我构建应用程序并运行它时(不幸的是,不知道如何在没有KMPlayer或Mozilla的情况下运行它 - Flash Player是一个插件afaik)我没有视频。电影文件与应用程序的“Application.flv”目录位于同一目录中。但如果我重新加载应用程序(在播放器或浏览器中)几次,视频就会启动。

所以,这是我的问题:

  • VideoDisplay出了什么问题 组件以及如何解决此问题 “非玩”?

  • 什么是更好的方式 执行应用程序而不是运行 它在电影播放器​​或浏览器中?

P.S。:请不要因为我的知识缺乏而生气 - 我差不多在30分钟前开始使用Flex。

3 个答案:

答案 0 :(得分:1)

您应该使用Spark组件,而不是MX组件。试试这个:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
    <s:VideoPlayer source="bar.flv" width="640" height="480" />

</s:Application>

答案 1 :(得分:0)

组件内部的视频显示存在一些问题。在某些方面做得不好的唯一灵活组件之一。请不要让它阻止你去探索Flex。

创建一个扩展它的自定义组件,使用以下代码创建一个名为CustomVideoDisplay.as的文件:

package
{
    import mx.controls.VideoDisplay;

public class CustomVideoDisplay extends VideoDisplay
{      
    [Bindable]
    override public function get source():String
    {
        return super.source;
    }

    override public function set source(value:String):void
    {
        super.source = value;

        play();
    }

    public function CustomVideoDisplay()
    {
        super();
    }
}

}

然后将其添加到根<application>标记中:

 xmlns:local="*"

对于您的视频组件,请将其命名为:

<local:CustomVideoDisplay 
        source="bar.flv"
        width="640"
        height="480"
        maintainAspectRatio="true"
        id="moo_player"
        autoPlay="true"
        doubleClick="pause();" 
        doubleClickEnabled="true"
    />

请告诉我这是否不适合你!

答案 2 :(得分:0)

好吧,我想:我的播放器将在Web项目的客户端运行,而在FireFox中,代码运行成功运行七次。我认为这对测试和实施来说已经足够了。

感谢大家的麻烦!