我正在尝试像在youtube中一样在流媒体中实现比特率选择。一个选项应该是'auto',其他选项应该是手动的。我正在使用smil文件加载我的视频。 Flowplayer文档http://flash.flowplayer.org/plugins/flash/menu.html显示使用菜单插件。我无法使用该方法,因为url路径是在运行时生成的。因此我使用smil进行菜单创建并且它可以工作。我只是提到了smil文件名,菜单插件无缝地加载了smil的比特率。我不确定这是如何工作的。
这是代码
clip: {
url:"<?php echo getxml(); ?>",
autoPlay: true,
provider: 'rtmp',
scaling:"fit",
urlResolvers: [ 'smil', 'bwcheck','brselect' ],
onStart: function() {
}
},
plugins: {
smil: {
url: "flowplayer.smil/flowplayer.smil-3.2.8.swf"
},
bwcheck: {
url: "flowplayer.bwcheck/flowplayer.bwcheck-3.2.11.swf",
serverType: 'wowza',
dynamic: true,
dynamicBuffer:true,
netConnectionUrl: 'rtmp://itl.bc-s.cdn.bitgravity.com/cdn',
checkOnStart: true,
rememberBitrate: true,
onStreamSwitchBegin: function(newItem, currentItem) {
$f().getPlugin('content').setHtml("Will switch to: " + newItem.streamName +" from " + currentItem.streamName);
},
onStreamSwitch: function(newItem) {
$f().getPlugin('content').setHtml("Switched to: " + newItem.streamName);
}
},
menu: {
url: "http://releases.flowplayer.org/swf/flowplayer.menu-3.2.12.swf",
items: [
{ label: " Auto", enabled: true, index: 0,toggle:true , selected:true},
],
onSelect: function(item) {
if(item.index == 0){
$f().getPlugin('bwcheck').enableDynamic(true);
$f().getPlugin('content').setHtml("Auto Mode Slected : Best bit rate will be selected according to your bandwidth");
}
else{
$f().getPlugin('bwcheck').enableDynamic(false);
$f().getPlugin('content').setHtml("Manual bit rate selection activated");
}
}
},
brselect: {
url: "http://releases.flowplayer.org/swf/flowplayer.bitrateselect-3.2.13.swf",
menu: true,
},
从代码中我可以看到,我放置了一个像这样的项目
{ label: " Auto", enabled: true, index: 0,toggle:true , selected:true},
默认选择自动模式,我必须在菜单项“自动”上打勾。这也是使用参数'selected'实现的。但问题是,当文件开始在自动模式下播放时播放的比特率也被选中,并且也会得到这样的刻度标记。
http://tinypic.com/r/2nkt9fl/6
我需要禁用它。切换正在发生,功能已实现,但用户得到了错误的想法。有一个名为'group'的属性,我想我必须将所有项目作为小组的一部分。 'group','selected'和'toggle'属性的组合应该可以做到这一点,但我无法实现它。