首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex的VideoDisplay控件不打开流

Flex的VideoDisplay控件不打开流
EN

Stack Overflow用户
提问于 2011-07-09 21:35:44
回答 3查看 1.2K关注 0票数 0

我想让VideoDisplay和FlashDevelop一起玩媒体。下面是我的应用程序的来源:

代码语言:javascript
复制
<?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是一个插件afaik,我不知道如何运行它),我没有视频。电影文件与应用程序的"Application.flv“文件位于同一个目录中。但是如果我重新加载应用程序(在播放器或浏览器内)几次,视频就会启动。

所以,下面是我的问题:

  • VideoDisplay组件有什么问题,以及如何修复这个“不播放”?
  • ,比在电影播放器或浏览器中运行应用程序更好的方法是什么?

请不要因为我的知识不足而生气--我大约30分钟前就开始使用Flex了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-11 14:27:01

你应该使用星火组件,而不是MX组件。试试这个:

代码语言:javascript
复制
<?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
EN

Stack Overflow用户

发布于 2011-07-10 01:32:21

组件内部的视频显示存在一些问题。这是唯一一个在某些方面做得很差的flex组件。请不要让它阻止你去探索Flex。

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

代码语言:javascript
复制
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>标记中:

代码语言:javascript
复制
 xmlns:local="*"

对于您的视频组件,请参阅以下内容:

代码语言:javascript
复制
<local:CustomVideoDisplay 
        source="bar.flv"
        width="640"
        height="480"
        maintainAspectRatio="true"
        id="moo_player"
        autoPlay="true"
        doubleClick="pause();" 
        doubleClickEnabled="true"
    />

如果这对你不起作用,请告诉我!

票数 0
EN

Stack Overflow用户

发布于 2011-07-11 18:03:03

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

谢谢大家的麻烦!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6637619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档