CMP获取配置的各种方法

CMP基于flash开发,同所有flash一样,参数有以下两个来源:

URL中的查询字符串 cmp.swf?parameter_name=parameter_value
HTML的FlashVars参数值 <param name="flashvars" value="parameter_name=parameter_value" />
CMP所有参数都可以从以上2种方式传入,URL传参可以很方便用于单曲播放,而用flashvars可以结合浏览器缓存最大化的优化网络
尽管以上方式可以传入所有参数,但如果太多的话就会很杂,不宜管理,还有转义问题,URL长度限制问题(IE限2083长度)等
所以,CMP还支持通过加载一个XML配置文件来读取参数的方式,实际上就是将需要的参数打包到这个配置文件中,然后进行加载解析
加载一个XML配置文件 默认配置文件为config.xml,也可以用url参数自定义:cmp.swf?url=myconfig.xml
所有CMP4支持的配置加载方式
注:最新版本的CMP4,如果主程序文件名中含有local字符串(如:cmp_local.swf),则不支持跨域加载配置列表等数据
也就是加载的数据不能使用绝对地址,只能用相对地址从本域加载,此方法可以减少CMP主程序被第三方恶意调用

CMP4支持的所有全局配置参数

全局配置参数快捷查询(按开头字母分组)
自定义配置路径相关参数
config 配置内容参数,cmp.swf?config=配置内容,也就是将配置的xml内容以一个字符串传入
url 自定义完整配置路径,默认值为config.xml,如cmp.swf?url=config.asp
id id标识的快捷配置路径方式,如cmp.swf?id=1,则自动加载1.xml的文件作为配置
asp 服务端为asp程序的快捷配置路径方式,如cmp.swf?asp=1,将加载cmp.asp?id=1为配置
aspx 服务端为aspx程序的快捷配置路径方式,如cmp.swf?aspx=1,将加载cmp.aspx?id=1为配置
php 服务端为php程序的快捷配置路径方式,如cmp.swf?php=1,将加载cmp.php?id=1为配置
jsp 服务端为jsp程序的快捷配置路径方式,如cmp.swf?jsp=1,将加载cmp.jsp?id=1为配置
cgi 服务端为cgi程序的快捷配置路径方式,如cmp.swf?cgi=1,将加载cmp.cgi?id=1为配置
各种方式优先级和使用范围,见上文的CMP4获取配置的各种方法,跨域加载配置文件时,需跨域策略文件crossdomain.xml支持
基本信息
name 自定义播放器的名称,默认为当前CMP版本值
link
link_target
description 描述,无歌词时显示,默认为空
logo
logo_alpha logo全局透明度,默认0.2
如果在受限页面中,将无法打开链接,或者被浏览器拦截
皮肤相关
skins 预加载皮肤的地址列表,可设置多个,逗号隔开,如skins="default.zip,wmp11.zip"
提示:如果皮肤路径格式都正确,但加载错误,可能是因为空间对zip文件的限制访问导致,可尝试将后缀改为swf等
skin_id 当前需要使用皮肤的id序号,默认值为1,如果没有设置以上skins皮肤列表,则加载默认皮肤,此时skin_id为0
skin 单个皮肤地址快捷设置,它将自动附加到上面skins设置的前面,并强制skin_id为1
很多空间存在.zip后缀文件无权读取的问题,可尝试修改皮肤后缀为swf或jpg解决,如skin="default.swf"
插件和背景
plugins 插件地址列表,支持多个,支持多属性自定义(最新版本CMP支持将多个插件打包成zip文件一起加载)
plugin 附加插件地址,将自动附加到plugins参数前面
models 自定义模块地址,将自动附加到plugins参数前面(优先级低于plugin参数)
backgrounds 背景地址列表,支持多个,支持多属性自定义
background 附加背景地址,将自动添加到backgrounds参数前面
bgcolor 播放器所在flash背景颜色,默认为空
plugins_disabled 是否禁用加载所有插件,默认为0不禁用
插件相关格式说明
播放列表相关
lists 列表文件地址,默认为list.xml,可设置多个,如"list1.xml,list2.xml,list3.xml"
跨域加载列表文件时,需跨域策略文件crossdomain.xml支持
(最新版本CMP支持将多个列表打包成zip文件一起加载)
list 将一个列表xml的内容以一个字符串的方式传入
play_mode 播放模式(控制窗口目前仅提供3个控制按钮,也就是重复按钮,随机按钮,单曲按钮)
"0"或"normal" 正常顺序播放模式,默认模式,即按列表顺序逐个播放
"1"或"repeat" 重复播放模式,即播放完成后再反复播放
"2"或"random" 随机播放模式,即从列表随机选择一个播放
"3"或"upward" 按列表向上播放模式,和正常顺序播放方向相反
"4"或"single" 单个播放模式,即单个播放完成后停止
play_id

指定当前播放的列表id序号,默认为1,最后一个播放的id将被自动保留

如果开启自动播放,而且有src单曲设置,则此参数无效

auto_play 是否开启自动播放,0:不开启(默认), 1:开启
auto_open 当下一个要播放的项是一个目录时,是否自动打开后进行播放,0:不进行自动打开(默认),1:开启自动打开
click_play 是否单击列表开始播放,默认为0,即需要双击才播放
click_next 双击播放模式下,点击了播放项以外的另一项后,是否将此项作为下一个要播放的项,无视播放模式选择,默认为1,开启选择
default_type 默认媒体的类型,默认为video,即无法识别媒体类型时,将使用视频模块去处理,如改为sound则默认为声音类型
list_delete 是否在列表显示列表删除按钮(内存中删除),默认0不显示,为1则可在列表每一行后显示一个删除按钮
list_error 是否在播放错误时显示错误次数,默认为1显示,为0则不显示
全局代理程序
src_handler 全局音乐地址代理,如:src_handler.php?vid={vid}
lrc_handler 全局歌词地址代理,如:lrc_handler.php?title={label}&rd={rd}
bg_video 全局视频背景设置
bg_lrc 全局歌词背景设置
image_handler 缩略图全局代理,需缩略图皮肤方可显示
text_handler 描述全局代理,需缩略图皮肤方可显示
error_handler 错误处理接口,用于播放错误时提交xml数据到服务端,默认为空,不启用
关于自动处理代理和随机参数的自动替换请见:http://bbs.cenfun.com/thread-11098-1-1.html
跨域加载歌词或描述时,需跨域策略文件crossdomain.xml支持
声音相关
volume 当前音量,范围从 0(静音)至 1(最大音量) 默认0.8
panning 声音平移参数,表示声道从左到右的平移,范围从 -1(左侧最大平移)至 1(右侧最大平移),默认值0表示没有平移(居中)
mute 是否静音,默认为0不静音
sound_sample 是否启用声音样本处理,默认不开启,开启后将耗费更多系统资源
开启取样处理,能实现在跨域播放mp3时显示频谱效果,同时支持均衡器参数设置
sound_eq 声音样本均衡参数(必须启用sound_sample声音样本处理才有效),默认为空,即不进行均衡过滤处理
长度为10个值,用逗号隔开,每个值为-12到12之间的数字,全部为0则也表示不启用
取样和均衡器设置专贴:http://bbs.cenfun.com/thread-13199-1-1.html
设置窗口相关
share_cmp 设置中是否显示复制分享地址按钮
default_skin 设置中是否显示默认皮肤项
skin_info 设置中是否打开皮肤详细信息
share_url CMP分享地址,默认按当前CMP主程序所在位置自动生成
share_html CMP分享代码,默认按share_url参数自动生成
设置相关
context_menu 右键菜单选项,0为不显示,1为全部,其他为仅名称
context_menu还可以在皮肤配置中设置,优先级高
shortcuts 是否启用默认快捷键,默认启用
show_meta 如果有读取权限,是否显示媒体的meta信息,默认显示
counter 图片形式的计数器地址,如counter="http://img.users.51.la/5492210.asp"
javascript 网页环境运行的简单脚本,支持自动替换,如:javascript="alert('{key}');"
时间相关
timeout 音乐连接超时的时间,默认15秒
buffer_time 音乐需要缓冲的时间,默认5秒
forward_time 每次快进快退时长,默认3秒,需快进快退按钮支持
最新版本已经不再支持buffer_next参数
全屏相关
fullscreen_max 用来设置全屏后是否最大化视频或歌词,默认最大化视频,即fullscreen_max="video"
或者设置fullscreen_max="lrc" 设置其他值将不会执行任何最大化操作,仅进行全屏
fullscreen_scale 用来设置全屏时进行硬件缩放的比例,值小于等于1,不能过小,将根据客户端显示器分辨率进行比例缩放
默认值为1,即不进行缩放,如设置为0.5,则会以全屏一半大小放大到全屏区域
以上两个参数都可以在皮肤中的bt_fullscreen按钮属性中进行设置,且优先级高
歌词相关
lrc_max 是否最大化歌词区,默认不最大化
lrc_scale 最大化时当前歌词的缩放倍数,默认为1
lrc_scalemode 歌词区缩放模式,默认为1,详情见下面的视频缩放模式说明
lrc_idtags 是否在lrc歌词最前面显示标识标签的内容,即时间标记以外al,ar,ti,by这些标记的内容
默认为true显示,设置为false则可以不显示这些内容,同时也支持对应到kmc歌词
lrc_image 歌词区图片路径,预览图,一直显示,不同于歌词背景bg_lrc每次都更换
视频相关
video_max 是否最大化视频区,默认不最大化
video_smoothing 是否开启视频平滑处理,默认开启
video_blackwhite 是否开启视频黑白处理,默认关闭
video_highlight 是否开启视频高亮处理,默认关闭
video_scalemode 视频缩放模式
1 在指定区域中可见,且不会发生扭曲,同时保持应用程序的原始高宽比,默认值
2 在指定区域中可见,但不尝试保持原始高宽比。可能会发生扭曲,应用程序可能会拉伸或压缩显示
3 指定整个应用程序填满指定区域,不会发生扭曲,但有可能会进行一些裁切,同时保持应用程序的原始高宽比
0 不进行缩放,即使在更改播放器窗口大小时,它仍然保持不变
video_image 视频区图片路径,预览图,一直显示,不同于视频背景bg_video每次都更换
频谱相关
mixer_src 用来加载外部声音频谱器插件,默认不加载,即使用系统自带10种声音频谱效果
mixer_id 系统声音频谱器当前效果的id,默认为1,范围0-10,分别表示CMP4默认支持的10种效果和无效果
mixer_color 设置声音频谱器颜色,默认为a4eb0c
mixer_displace 是否开启图形置换效果,默认不开启
mixer_filter 是否开启图形滤镜效果,默认不开启
仅MP3播放时显示频谱,且必须是安全沙盒内,最新CMP4还可以通过设置sound_sample开启取样来实现跨域显示频谱
单个音乐加载
src 单曲地址,判断存在单曲必须的参数
label 单曲名称
type 单曲类型
lrc 单曲歌词
更多单曲参数见列表中音乐项支持的参数
JS脚本API接口参数
api JavaScript回调函数名,如:api=cmp_loaded,当CMP准备完成,将调用一次所在页面的cmp_loaded函数
具体使用例子见使用范例
注意:以上某些参数可能需要最新版本的CMP4方能支持,除了以上参数,某些插件或皮肤等也可能有其一些特定的参数
一个CMP4配置文件的例子