-1

当我将 jwplayer 与以下配置一起使用时,一切正常。

jwplayer('someId').setup({
        'flashplayer': '/js/jwplayer/player.swf',
        'file':        'awesome.flv',
        'streamer':    'rtmp://some.server.com:1934/vod',
        'width':       '220',
        'height':      '190'
    });

当我使用带有以下配置的 dojo 时:

new Flash({
    path:   'rtmp://some.server.com:1934/vod?file=awesome.flv' ,
    width:    220,
    height:   190
    }, this.someId);

Flash 占位符可见,但没有播放流的控件,在控制台中我可以看到对我没有意义的错误......

Building SWF failed.
[Break On This Error]   

comboPendingTimer = null;

dojo.js (line 648)

dojo flash 配置有什么问题?另一件事是如何告诉dojo使用object标签?现在它使用了一些奇怪embed的标签......

Dojo 1.7.2 版文档没有那么有用http://dojotoolkit.org/reference-guide/1.7/dojox/flash.html

4

1 回答 1

1

Dojox.embed.Flash 只是一个浏览器嗅探实用程序,它将以最适合用户浏览器的方式呈现<embed><object>

你做错了路径,Flash 对象不知道如何处理流式 flv 文件,它需要指向一个 swf。

可使用的选项

var dataurl =    "player.swf"
var flashvars =  {'file':'playlist.xml','autostart':'true'};
var params =     {'allowfullscreen':'true','allowscriptaccess':'always', 'bgcolor':'#ffffff'};
var attributes = {'id': 'player1','name':'player1'};
var expressInstall = "http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75"

将 swfobject 与 jwplayer 一起使用

这是一个来自 longtail 的示例,展示了如何通过 swfobject 嵌入:

swfobject.embedSWF(dataurl, 'flashContent', '300', '250', '9', 'false', flashvars, params, attributes);

因此来自原型 embedSWF 是:

swfobject.embedSWF(swfUrlStr, replaceElemIdStr, widthStr, heightStr, 
     swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj,
     attObj, callbackFn)

将 dojox.embed.Flash 与 jwplayer 一起使用

有关参数,请参阅参考指南

将以上结果映射到

new Flash({
    width: 300,
    height: 250,
    minimumVersion: 9,
    expressInstall : expressInstall,
    allowScriptAccess: true,

    path: dataurl,
    id: 'player1',
    vars: flashvars,
    params: params        

}, 'flashContent');
于 2012-07-11T09:16:16.887 回答