有人知道Flash Media Playback是否支持某些API,因为我需要通过javascript
来处理一些方法/事件,如:
我需要像Grab Player那样的所有东西。但docs表示我们必须实施它。 谢谢!
P.S。基本的FMP实施如下:
<object width="600" height="409"> <param name="movie" value="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf"></param><param name="flashvars" value="src=http%3A%2F%2Fosmf.org%2Fvideos%2Fcathy2.flv&poster=http%3A%2F%2Fosmf.org%2Fimages%2Fposter_cathy_fmp.jpg"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="600" height="409" flashvars="src=http%3A%2F%2Fosmf.org%2Fvideos%2Fcathy2.flv&poster=http%3A%2F%2Fosmf.org%2Fimages%2Fposter_cathy_fmp.jpg"></embed></object>
答案 0 :(得分:1)
Flash Media Playback支持与Strobe Media Playback相同的功能,但是Strobe存在的javascript api一直是探索性的,所以我不相信它在FMP中有任何支持。
尽管如此,FMP采用与Strobe相同的插件架构,因此您应该能够使用OSMF并以与strobe相同的方式为其创建插件。我为Strobe创建了一个插件,目的是延伸Strobe的javascript api。你可以在FMP中做类似的事情。我是这样做的:
private function onFullScreen(event:FullScreenEvent):void
{
if (event.fullScreen) {
call([this.javascriptCallback, ExternalInterface.objectID, "fullscreen", true]);
} else {
call([this.javascriptCallback, ExternalInterface.objectID, "fullscreen", false]);
}
}
private static function call(args:Array, async:Boolean = true):void
{
if (async)
{
var asyncTimer:Timer = new Timer(10, 1);
asyncTimer.addEventListener(TimerEvent.TIMER,
function(event:Event):void
{
asyncTimer.removeEventListener(TimerEvent.TIMER, arguments.callee);
ExternalInterface.call.apply(ExternalInterface, args);
}
);
asyncTimer.start();
return;
}
ExternalInterface.call.apply(ExternalInterface, args);
}
}
请参阅:github
如果可以的话,我会放弃FMP。 FMP的文档几乎不存在,并且Strobe中对javascript的支持非常好。如果您有兴趣,我已经记录了Strobe javascript api here。