在视频播放器组件中灵活加载不同的视频

时间:2011-07-17 08:40:14

标签: php html flex adobe mxml

正如一些互联网教程建议我使用PHP和Flex为FLV Video Player构建了一个简单的服务器 - 客户端应用程序。我遇到的问题是我无法使用Notepad ++更改mxml文件中的视频源。如果我运行Flex,可以更改源代码,但这不是一个好主意,因为我想通过此播放器运行不同的视频。请建议如何使用此Flex Video Player组件运行不同的视频,因为我的应用程序仅适用于FlexPlayer.mxml源中的这个 - 也许我不应该将此mxml文件用于不同的视频源?

<s:VideoPlayer id="Player" left="0" top="0" width="493" height="382" chromeColor="#2875DE"
    color="#000000" skinClass="MySkin" source="Video Source/Coldplay - Clocks.flv"/>    
</s:Application>

1 个答案:

答案 0 :(得分:1)

正确,因为您的flex应用程序已编译,您将无法使用它来定义要观看的电影。

但是,您可以使用其他替代方法在运行时将数据提取到应用程序中。

例如,您可以在html中的参数中指定视频文件,因为您可以在每次运行之前在记事本或其他文本编辑器中对其进行编辑:

<?xml version="1.0"?>
<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 id="Player" left="0" top="0" width="493" height="382" chromeColor="#2875DE"
               color="#000000" skinClass="MySkin" source="{this.parameters.videoFile}"/>    

</s:Application>

在这种情况下,您可以在html中将其指定为将Flash应用程序调用为flashvar参数。在html页面中查找:

    <script type="text/javascript">
        // For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. 
        var swfVersionStr = "10.2.0";
        // To use express install, set to playerProductInstall.swf, otherwise the empty string. 
        var xiSwfUrlStr = "playerProductInstall.swf";
        var flashvars = {};
        flashvars.videoFile = 'Video Source/Coldplay - Clocks.flv';  // specifying video here
        var params = {};
        params.quality = "high";
        params.bgcolor = "#ffffff";
        params.allowscriptaccess = "sameDomain";
        params.allowfullscreen = "true";
        var attributes = {};
        attributes.id = "scratch";
        attributes.name = "scratch";
        attributes.align = "middle";
        swfobject.embedSWF(
            "scratch.swf", "flashContent", 
            "100%", "100%", 
            swfVersionStr, xiSwfUrlStr, 
            flashvars, params, attributes);
        // JavaScript enabled so display the flashContent div in case it is not replaced with a swf object.
        swfobject.createCSS("#flashContent", "display:block;text-align:left;");
    </script>

有意义吗?