1

有谁知道Flash Media Playback是否支持某些 API,因为我需要通过以下方式处理一些方法/事件javascript

  1. 暂停
  2. 停止
  3. 流式传输已结束
  4. 开始流式传输
  5. 流式传输错误

我需要像Grab Player这样的所有东西。但是文档说我们必须实现它。谢谢!!

PS Basic 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>
4

1 回答 1

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 。

于 2016-09-27T07:34:21.360 回答