gpt4 book ai didi

java - 将源参数从 Java 应用程序传递到 Flash 播放器

转载 作者:行者123 更新时间:2023-12-01 12:46:59 25 4
gpt4 key购买 nike

我浏览了类似的问题,但没有帮助..我正在创建一个在 Java Vaadin 应用程序中使用的 Flash 播放器(根据此博客 http://www.derekentringer.com/blog/flex-3-simple-flv-player-scrubbing-pause-play/ ),代码如下。我编译该项目以获取 test.swf 文件并在 Java 应用程序中使用它。

如果我将源链接直接放入 mxml 文件中的“VideoDisplay”标签内(source="rtmp://cp114761.live.edgefcs.net:443/live/tpc-live_1 @44263"/> 如博客中所示),然后编译并使用生成的 test.swf。

但是如果我将“源”作为 java 应用程序的参数传递,它不会播放视频。为此,我编译播放器时不使用“VideoDisplay”标签内的“source”参数。在这种情况下,它仅显示按钮(因此播放器本身加载良好),但视频未播放。

非常感谢您的任何建议..

Java代码:

private Embedded video = new Embedded();
video.setParameter("wmode", "opaque");
video.setParameter("pluginspage","http://www.macromedia.com/go/getflashplayer");
video.setParameter("type", "application/x-shockwave-flash");
video.setParameter("allowfullscreen", "true");
video.setParameter("allowScriptAccess", "always");
video.setParameter("name","flvp2");
video.setParameter("quality", "high");
video.setParameter("sameDomain", "allowscriptaccess");
video.setSource("path/to/resources/flash/test.swf");
video.setParameter("flashVars", "source=rtmp://cp114761.live.edgefcs.net:443/live/tpc-live_1@44263");

Flash代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="top" backgroundColor="white" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
private function formatTime(item:Date):String {
return dateFormatter.format(item);
}
private function videoDisplay_playheadUpdate():void {
var pT:Number = videoDisplay.playheadTime || 0.1;
var tT:Number = videoDisplay.totalTime;
var pTimeMS:Date = new Date(pT * 1000);
var tTimeMS:Date = new Date(tT * 1000);
timeLabel.text = formatTime(pTimeMS) + " / " + formatTime(tTimeMS);
}
private function slider_thumbPress():void {
videoDisplay.pause();
}
private function slider_thumbRelease():void {
videoDisplay.play();
}
private function videoDisplay_ready():void {
videoDisplay.visible = true;
controlBar.visible = true;
}
]]>
</mx:Script>
<mx:DateFormatter id="dateFormatter" formatString="NN:SS" />
<mx:Panel title="{videoDisplay.source.split('/').pop()} ({videoDisplay.state})">
<mx:VideoDisplay id="videoDisplay" visible="false" width="100%" height="100%"
playheadUpdate="videoDisplay_playheadUpdate()"
ready="videoDisplay_ready()"
rewind="videoDisplay.play()"
autoPlay="true"
live="true"
idleTimeout="1000" />
<mx:ControlBar id="controlBar" visible="false">
<mx:Button id="play" name="play" label="Play" click="videoDisplay.play()"></mx:Button>
<mx:Button id="pause" name="pause" label="Pause" click="videoDisplay.pause()"></mx:Button>
<mx:Label id="timeLabel" textAlign="right" />
</mx:ControlBar>
</mx:Panel>
</mx:Application>

最佳答案

如果有人需要它,答案是在 mxml 文件的 [CDATA[ 部分声明一个变量:

[Bindable]
private var source:String;

初始化:

this.source = FlexGlobals.topLevelApplication.parameters.source;

并在 VideoDisplay 标记内使用它:

<mx:VideoDisplay id="videoDisplay" visible="true" width="100%" height="100%"
...
source="{source}"/>

关于java - 将源参数从 Java 应用程序传递到 Flash 播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24604731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com