我正在尝试使用 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。
答案 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中,代码运行成功运行七次。我认为这对测试和实施来说已经足够了。
感谢大家的麻烦!