当前位置:在线查询网 > 在线百科全书查询 > cmp播放器

cmp播放器_在线百科全书查询


请输入要查询的词条内容:

cmp播放器




CMP简介


CMP是一款免费的在线Flash音乐播放器,全称为CenFun Music Player,简称为"CMP"。

CMP致力于提供最佳在线音乐播放解决方案,支持的音频视频格式主要有MP3,FLV,MP4,并可以通过网页JS接口实现WMP(Windows Media Player)所支持的格式播放,如wma等。主要功能特色有列表式播放(自定义音乐专辑和列表),MP3可视化效果(声音频谱),同步歌词(默认支持lrc歌词以及kmc卡拉ok歌词),高清视频和在线直播(h264/rtmp),自定义皮肤,加载各种插件等等,CMP4支持API的调用,可让用户实现更多自定义功能。

为什么在web环境中采用基于flash的播放器优于wmp?因为wmp是IE+Windows Only,很显然这已经不再符合现在的网络发展趋势。而flash具有很强的跨平台能力,基本支持所有PC操作系统(win/linux/mac)和浏览器(IE/FireFox/Chrome/Opera/Safari等),这样才能使你网站的播放器具有更广泛的兼容性。当前,flash已经是使用最多的网络媒体播放软件,而且除了PC系统,flash已经开始全面支持android手机系统,所以web环境中(BS)采用基于flash的播放器无疑是最佳选择。

CMP为纯绿色软件,不含有任何广告,后门,弹出,限制等之类的东西

CMP完全运行环境仅静态空间即可,完全运行于客户端,由flash/xml/html/js/文本和图片组成

CMP有强大的自定义参数能力,可以很方便的实现完全动态数据支持,服务端不限(asp/php/.net/jsp等)

CMP为免费软件,无需任何使用费用

CMP1.1(2005) -> CMP2.0(2006) -> CMP2.1(2007) -> CMP3(2008) -> CMP4(2009)

CMP基础文档


全局配置Config.xml

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

更多config.xml配置详见参考资料。

自定义配置路径相关参数

config配置内容参数,cmp.swf?config=配置内容,也就是将配置的xml内容以一个字符串传入

url自定义完整配置路径,默认值为config.xml,如cmp.swf?url=config.asp

idid标识的快捷配置路径方式,如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右键中点击名称打开的链接,默认为CMP论坛地址

link_target链接是在当前窗口(默认_self)还是新窗口(_blank)打开

description描述,无歌词时显示,默认为空

logo加载logo图标的地址,默认为空,支持AS3 API

支持多个和多属性定义,如居右下角显示:logo="{src:logo.png,xywh:[10R,10R,0,0]}"

logo_alphalogo全局透明度,默认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_disabled是否禁用加载所有插件,默认为0不禁用

bgcolor播放器所在flash背景颜色,默认为空

plugins插件地址列表,支持多个,支持多属性自定义

plugin附加插件地址,将自动添加到plugins参数前面

backgrounds背景地址列表,支持多个,支持多属性自定义

background附加背景地址,将自动添加到backgrounds参数前面

插件相关格式说明

播放列表相关

lists列表文件地址,默认为list.xml,可设置多个,如"list1.xml,list2.xml,list3.xml"

跨域加载列表文件时,需跨域策略文件crossdomain.xml支持

list将一个列表xml的内容以一个字符串的方式传入

play_mode播放模式(控制窗口目前仅提供3个控制按钮,也就是重复按钮,随机按钮,单曲按钮)

"0"或"normal" 正常顺序播放模式,默认模式,即按列表顺序逐个播放

"1"或"repeat" 重复播放模式,即播放完成后再反复播放

"2"或"random" 随机播放模式,即从列表随机选择一个播放

"3"或"upward" 按列表向上播放模式,和正常顺序播放方向相反

"4"或"single" 单个播放模式,即单个播放完成后停止

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

auto_play是否开启自动播放,0:不开启(默认), 1:开启

auto_open当下一个要播放的项是一个目录时,是否自动打开后进行播放,0:不进行自动打开(默认),1:开启自动打开

不支持临时外载的目录,也就是有list_src参数的列表项

click_play是否单击列表开始播放,默认为0,即需要双击才播放

click_next双击播放模式下,点击了播放项以外的另一项后,是否将此项作为下一个要播放的项,无视播放模式选择,默认为1,开启选择

default_type默认媒体的类型,默认为video,即无法识别媒体类型时,将使用视频模块去处理,如改为sound则默认为声音类型

list_delete是否在列表显示列表删除按钮(内存中删除),默认0不显示,为1则可在列表每一行后显示一个删除按钮

全局代理程序

src_handler全局音乐地址代理,如:src_handler.php?vid={vid}

lrc_handler全局歌词地址代理,如:lrc_handler.php?title={label}&rd={rd}

bg_video全局视频背景设置

bg_lrc全局歌词背景设置

image_handler缩略图全局代理,需缩略图皮肤方可显示

text_handler描述全局代理,需缩略图皮肤方可显示

跨域加载歌词或描述时,需跨域策略文件crossdomain.xml支持

声音相关

volume当前音量,范围从 0(静音)至 1(最大音量) 默认0.8

panning声音平移参数,表示声道从左到右的平移,范围从 -1(左侧最大平移)至 1(右侧最大平移),默认值0表示没有平移(居中)

mute是否静音,默认为0不静音

sound_sample是否启用声音样本处理,默认不开启,开启后将耗费更多系统资源

开启取样处理,能实现在跨域播放mp3时显示频谱效果,同时支持均衡器参数设置

sound_eq声音样本均衡参数(必须启用sound_sample声音样本处理才有效),默认为空,即不进行均衡过滤处理

长度为10个值,用逗号隔开,每个值为-12到12之间的数字,全部为0则也表示不启用

设置窗口相关

share_cmp设置中是否显示复制分享地址按钮

default_skin设置中是否显示默认皮肤项

skin_info设置中是否打开皮肤详细信息

share_urlCMP分享地址,默认按当前CMP主程序所在位置自动生成

share_htmlCMP分享代码,默认按share_url参数自动生成

设置相关

context_menu右键菜单选项,0为不显示,1为全部,其他为仅名称

context_menu还可以在皮肤配置中设置,优先级高

shortcuts是否启用默认快捷键,默认启用

show_meta如果有读取权限,是否显示媒体的meta信息,默认显示

counter图片形式的计数器地址,如counter=""

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_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单曲歌词

更多单曲参数见列表中音乐项支持的参数

媒体列表List.xml

CMP4的列表文件是一个XML格式的树结构文件,用来设置所有要播放的音乐信息

列表文件路径由配置文件的lists参数来指定,如果不指定,则默认为:lists="list.xml"

一个CMP4列表文件的例子:

<list>

<m type="" src="music" lrc="" label="1,MP3音乐测试" />

<m type="" src="music/test.flv" lrc="" label="2,FLV视频测试" />

<m type="3" src="music lrc="" label="3,WMP类型测试" />

<m type="" src="plugins/bigbg.swf" lrc="" scalemode="1" duration="10" label="4,Flash播放测试" />

<m type="" src="logo.png" lrc="" scalemode="1" duration="5" label="4,图片播放测试" />

<m list_src="list.xml" label="子列表" />

<m label="目录">

<m label="二级目录">

<m label="三级目录">

<m type="" src="music" lrc="" label="test" />

</m>

</m>

<m type="" src="music" lrc="" label="test" />

</m>

<m label="打开的目录" opened="1">

<m type="" src="music lrc="" label="test" />

</m>

</list>

CMP4皮肤配置Skin.xml

CMP4加载完成皮肤包后,首先需要读取皮肤包中的配置文件,也就是skin.xml,指定名称,

不能使用其他的皮肤配置文件包含了所以皮肤元件的设置信息,

如果未设置则使用默认值或者不显示该元件.

皮肤基本机构元件:

skin 根节点

option 设置窗口

pane 设置面板区域

scrollbar 设置面板的滚动条

bt_close 设置窗口的关闭按钮

event 窗口事件,可以多个

list 列表窗口

tree 列表树区域

search 列表搜索框

scrollbar 列表树的滚动条

icons 列表树的图标

bt_close 列表窗口关闭按钮

event 窗口事件,可以多个

lrc 歌词窗口

text 歌词文本区域

kmc 卡拉ok歌词设置,如果没有则使用父节点text中的文本设置和kmc默认设置

bt_close 歌词窗口关闭按钮

event 窗口事件,可以多个

media 媒体窗口

video 视频和频谱效果区域

bt_close 媒体窗口关闭按钮

event 窗口事件,可以多个

console 控制窗口

bt_play 播放和暂停按钮

bt_stop 停止按钮

bt_prev 上一个按钮

bt_forward 快进按钮

bt_rewind 快退按钮

bt_next 下一个按钮

bt_random 随机播放按钮

bt_repeat 重复播放按钮

bt_single 单遍播放按钮

bt_mute 静音按钮

volume 音量控制条

progress 播放进度条

bt_list 列表窗口开关按钮

bt_video 媒体窗口开关按钮

bt_lrc 歌词窗口开关按钮

bt_option 设置窗口开关按钮

bt_fullscreen 全屏切换按钮

bt_link 链接按钮

title 当前播放标题

status 当前播放状态

time 当前播放时间,包括总时间

time_position 当前时间

time_duration 总时间

number 当前播放的数字时间,可显示倒计时

languages 语言设置

API接口


CMP4的API接口简介

API就是应用程序接口,CMP4的API用来提供给插件或页面脚本进行调用,以达到对CMP4进行控制的目的

通过API,可以读取或设置CMP4的相关属性,可以调用部分方法,可以绑定一些事件进行侦听等等

CMP4支持API的地方:

(1),全局配置中插件plugins和背景backgrounds,自定义频谱mixer_src,还包括logo,video_image,lrc_image

(2),皮肤中的5个窗口背景src

(3),列表项的视频区背景bg_video和歌词区背景bg_lrc

(4),JavaScript页面脚本(部分支持),必须允许脚本通讯(allowScriptAccess="always")

其中Flash的脚本必须为ActionScript 3.0版本,所以API接口分以下两种情况进行讨论:

ActionScript3 API

通过AS3的API接口通讯,我们可以在插件或皮肤中,直接获取CMP数据并进行控制,

下面是所以支持的属性,方法,事件

属性attributes:

cmp:Object;返回cmp对象

config:Object;取得cmp全局配置,包含所有可读写的全局配置,以及其他一些配置的只读属性,比如当前播放状态state,具体有哪些可用for in语句查询

item:Object;取得当前播放项,包含所有列表项属性,以及其他一些播放项的只读属性,具体有哪些可用for in语句查询

list_xml:XML;取得列表xml的引用

skin_xml:XMLList;取得当前皮肤配置的引用

tools:Object;返回cmp的工具箱,主要有:base64, effects, graphics, netclient, output, states, strings, types, zoom, zip

win_list:Object;

取得5个窗口的引用,有如下5个属性: option/list/media/console/lrc

当然还可以访问下一级对象,如要访问播放按钮bt_play则可:

var bt_play = api.win_list.console. bt_play;

结构和名称同皮肤包里面的skin.xml皮肤配置的结构和名称

方法methods:

addEventListener():void;

添加一个事件侦听器,如侦听皮肤加载完成事件:

api.addEventListener(api.key, ''skin_loaded'', skinHandler);

特别不同,这里第一个参数需传入api.key,它是一个唯一key值,用于第三方flash移除时,销毁其key所在所有注册的事件

addProxy():void;

添加一个代理函数,用于src="proxy:函数名,函数参数"这样的协议,如:

api.addProxy("youku", yk_callback);

这样就可以用自定义的yk_callback(函数参数)方法来解析协议:src="proxy:youku,函数参数"

cookie():String读取(cookie("name"))和写入(cookie("name", "data"))本地存储,类似于浏览器cookie,但无时间过期限制

removeEventListener():void;移除一个事件侦听器,如:api.removeEventListener(''skin_loaded'', skinHandler);

sendEvent():void;

发送一个事件,如:api.sendEvent("view_play");

如果有参数data要传递就是:api.sendEvent("view_play", data);

sendState():void;

发送一个新的播放状态,如将播放状态改为正连接:

api.sendState("connecting");

toString():String;打印api所有属性,方法,事件类型,方便查阅所有支持的api

事件类型events:按字母顺序

api发送api共享事件时调度

api_removeapi插件移除时调用

control_fullscreen全屏状态改变时调度

control_link打开链接页面时调度

control_load音乐开始加载时调度

control_max最大化改变时调度,事件的data将传递是lrc_max还是video_max

control_mute静音状态改变时调度

control_next播放下一个时调度

control_pause暂停时调度

control_play播放时调度

control_playmode播放模式改变时调度

control_prev播放上一个时调度

control_progress进度改变时调度

control_stop停止时调度

control_volume音量改变时调度

control_win窗口打开关闭时调度

control_winbt窗口对应按钮状态改变时调度

item_deleted

列表项删除时调度

事件的data将返回删除项对象

list_change列表已经改变时调度,表示新的列表已经刷新,可用于播放等操作

list_load

使列表开始加载时调度

事件的data可以传入新指定的配置lists进行加载

list_loaded

列表内容加载完时调度,多个列表会调度多个,每次会将加载的列表数据进行解析,然后附加到总列表,再刷新列表

事件的data可以传入新指定的xml列表内容字符进行解析,此功能便于外载调用,直接输入列表内容

lrc_complete

歌词成功加载完成时调度

事件data返回当前加载成功的歌词类型:lrc或kmc

lrc_error

歌词加载或解析错误时调度

事件data将返回错误信息

lrc_load

使当前音乐的歌词开始加载时调度

事件data可以传入指定当前音乐的歌词地址,支持lrc和kmc地址

lrc_loaded

歌词加载完成时调度

事件data可以传入指定的歌词内容,支持lrc和kmc格式内容

lrc_max对歌词最大化状态进行切换

lrc_resize歌词尺寸改变时调度,包括对歌词进行缩放调整

lrc_rowchange

当前歌词行内容改变时调度,仅支持lrc和kmc格式

事件data将传递返回当前行的歌词内容

有了这个事件可以很方便的调用js api在浏览器标题栏或状态栏打印当前位置的歌词

mixer_color

对混音器颜色进行变更时调度

事件data可以传入新的颜色值

mixer_displace

对混音器的置换效果状态进行切换时调度

事件data可传入true或false

mixer_filter

对混音器的滤镜效果状态进行切换时调度

事件data可传入true或false

mixer_next

使用下一个混音器效果时调度

事件data可以传入下一个频谱效果的id

mixer_prev

使用上一个混音器效果时调度

事件data可以传入下一个频谱效果的id

model_change

模块改变时调度

事件data可以传入要使用的新模块类型type

model_error

当前项发生错误时调度

事件data将返回错误信息

model_load

模块开始加载时调度

事件data可以传入即将要播放媒体url

model_loaded当前项下载完成时调度

model_loading当前项正在下载时调度

model_meta

当前项取得meta信息时调度

事件data将返回meta数据对象

model_start当前项第一次开始播放时调度,一般此时才开始加载歌词或开始显示频谱

model_state

当前项状态改变时调度

事件data将返回当前状态,所有支持状态码为:

undefined 未定义

connecting 连接中

buffering 缓冲

playing 正在播放

paused 已暂停

stopped 已停止

completed 播放完成

reconnecting 重试连接

状态改变时,将在皮肤的状态栏显示当前状态对应的说明,说明可以在皮肤配置的languages多语言里自定义

model_time当前项播放时间改变时调度

plugins_load

插件和背景开始加载时调度

事件data可传入新指定的配置plugins(不支持backgrounds)进行加载

plugins_loadedplugins参数指定的插件全部加载完成时调度(此时将第一次加载列表lists指定的文件)

plugins_remove插件和背景移除时调度

resize播放器舞台改变尺寸时调度

skin_change

针对皮肤id对皮肤进行改变时调度

事件data可以直接传入新的皮肤id

skin_complete皮肤显示完成时调度

skin_load

皮肤开始加载时调度

事件data可以传入新指定的配置skins参数进行加载

skin_loaded皮肤加载完成时调度

video_blackwhite

对视频是否启用黑白效果滤镜

事件data可传入true或false

video_effect

对视频进行颜色滤镜(ColorMatrixFilter)改变时调度

事件data可以传入一个英文逗号隔开的数组值,用来新建颜色矩阵滤镜ColorMatrixFilter

video_highlight

对视频是否启用高亮效果滤镜

事件data可传入true或false

video_max对视频最大化进行切换时调度

video_resize视频尺寸改变时调度

video_rotation

对视频进行旋转时调度

事件data可以传入旋转的角度值,如90

video_scalemode

对视频进行缩放模式改变时调度

事件data可以传入支持缩放模式的id,支持0,1,2,3

video_smoothing

对视频是否启用平滑效果时调度

事件data可以传入true或false

view_console对控制窗口状态进行改变时调度

view_forward点击快进按钮时调度

view_fullscreen对全屏状态进行改变时调度

view_item

对播放项进行改变时调度

view_link

点击链接按钮时调度

事件data可以传入新指定的链接进行打开

view_list对列表窗口进行改变时调度

view_lrc对歌词窗口进行改变时调度

view_mute点击静音按钮时调度

view_next点击下一个按钮时调度

view_option对设置窗口进行改变时调度

view_play

点击播放或暂停按钮时调度

事件的data可以传递列表id位置,表示播放第几个

view_prev点击上一个按钮时调度

view_progress

拖动播放进度条时调度

事件data可以传入指定的进度百分值

view_random点击随机播放模式按钮时调度

view_repeat点击重复播放模式按钮时调度

view_rewind点击快退按钮时调度

view_single点击单遍播放模式按钮时播放

view_stop点击停止按钮时调度

view_video对视频窗口状态进行改变时调度

view_volume

拖动音量条时调度

事件data可以传入指定的volume音量值和panning平移值,用英文逗号隔开,如:1,0

具体API接口应用的例子可以见安装包的示例:plugins/ApiExample .as 或者直接到官方插件库查看,

全部附源文件:

JavaScript API

下列函数的调用,需要先获取CMP所在flash的对象,也就是例子中的cmpo,获取方法见使用范例

cmp_api();只读,返回CMP所有支持的API信息,包括CMP支持的所以APIvar str = cmpo.cmp_api();

config();1,读取CMP当前所有的全局配置,返回一个Object对象,包含所有可读写的全局配置属性设置,以及其他一些只读属性var config = cmpo.config();

2,读取配置的某个属性值,具体支持哪些属性,可用for in语句查询

var name = cmpo.config("name");

var name = cmpo.config().name;

3,修改某个属性的值,需传入属性名称和值

注意:修改属性仅是将值写入配置中,需要下次有相关的刷新(如发送事件)才应用新的值

cmpo.config("skin_id", "1");

item();1,返回当前播放项的一个Object对象,如果没有开始任何播放,将返回null,其包含当前项的所有属性var item = cmpo.item();

2,返回当前播放项的某个属性值,具体支持哪些属性,可用for in语句查询

var src = cmpo.item("src");

var src = cmpo.item().src;

3,修改某个属性的值(一般不用)cmpo.item("src", "test .mp3");

list_xml();1,读取CMP当前列表内容,返回一个xml的字符串var xml = cmpo.list_xml();

2,修改列表内容,需传入一个xml列表格式的字符串

var xml = ''<list><m label="test" src="test .mp3" /></list>'';

cmpo.list_xml(xml);

如果需要覆盖原有的音乐可以设置第2个参数,表示是否附加到原有列表后面,默认为true表示附加,传入false表示不附加,将重建列表并写入新的列表内容cmpo.list_xml(xml, false);

list();

1,返回CMP列表数的所有信息,包括未打开的列表

将返回一个数组,数组每项都是一个音乐项对象,类型为Object

var arr = cmpo.list();

读取一级列表的个数var num = cmpo.list().length;

返回第二个项,数组是从0开始的,第二个项索引就是1var m2 = cmpo.list()[1];

如果这个音乐项是个目录,则会有children属性,表示它下面的子列表,也是一个数组

以此类推,这样我们可以逐个循环得到整个列表

当然音乐项也有parent属性,表示其父目录对象

var m2_arr = m2.children;

2,返回某个指定的项对象

参数可以是包含唯一key值Object型的项对象,也可以直接传入字符型key值

key值可以从上面1中的列表项对象中读取

var item = cmpo.list(m2);

var item = cmpo.list("ITEM_1");

3,读取项的某个属性var src = cmpo.list("ITEM_1", "src");

如果传入的参数是项支持的一个方法名,则执行此项的某个方法

目前支持:play播放此项, open打开此目录, close关闭此目录, toggle开关切换, remove移除此项

cmpo.list("ITEM_1", "play");

skin_xml();只读,返回当前皮肤配置文件内容的xml字符形式var xml = cmpo.skin_xml();

skin();1,读取皮肤元件的某个属性值,第1个参数表示皮肤元件位置,第2个是元件属性名

var width = cmpo.skin("console", "width");

var xywh = cmpo.skin("console .bt_play", "xywh");

2,修改元件的某个属性,如果修改成功将返回truecmpo.skin("console .bt_play", "xywh", "0, 0, 100, 20");

sendEvent();

往CMP发送事件

第1个参数是事件类型,所有支持类型见AS3中的所有事件类型列表

第2个参数是需要传入的数据(可选)

cmpo.sendEvent("view_play");

cmpo.sendEvent("view_play", 2);

addEventListener();

添加一个js侦听方法

第1个参数是事件类型,同上

第2个参数是回调函数名,字符串格式

cmpo.addEventListener("item_deleted", "del");

function del(data) { }

removeEventListener();移除一个已经注册的js侦听方法cmpo.removeEventListener("item_deleted", "del");

cookie();CMP的通用存储接口,可以在本地电脑存储并读取已经存储的数据,flash需启用本地存储(默认是10K容量),这些数据是永久储存的,而且跨浏览器

cmpo.cookie("name", "CMP4");

var name = cmpo.cookie("name");

使用范例


CMP4插入到页面:

CMP就是个flash,可以使用插入flash的通用方式嵌入到网页中。比如:直接使用html的object标签,或者使用流行的swfobject但是CMP4还有一些特殊功能和应用,为此提供了CMP专用嵌入脚本:cmp.js,以下就是一些CMP嵌入的例子直接在当前位置写入,最简方式:

<script type="text/javascript" src="/cmp.js"></script>

<script type="text/javascript">

CMP.write("cmp", "600", "400", "cmp.swf");

</script>在指定容器中插入,易于扩展:

<div id="player" style="width:600px;height:400px;"></div>

<script type="text/javascript" src="/cmp.js"></script>

<script type="text/javascript">

var htm = CMP.create("cmp", "100%", "100%", "cmp.swf");

document.getElementById("player").innerHTML = htm;

</script>插入的同时传递一些参数:

<div id="player" style="width:600px;height:400px;"></div>

<script type="text/javascript" src="/cmp.js"></script>

<script type="text/javascript">

var flashvars= {name : "CMP4",

skin : "skins/vplayer.zip",

lists : "mylist.xml"};

var htm = CMP.create("cmp", "100%", "100%", "cmp.swf", flashvars);

document.getElementById("player").innerHTML = htm;

</script>

其中flashvars参数也支持字符串的形式(注意值需要URL转义),如:

var flashvars = "name=CMP4&skin=skins/vplayer.zip&lists=mylist.xml";

支持页面JS脚本回调的更全面方式:

<div id="player" style="width:600px;height:400px;"></div>

<script type="text/javascript" src="/cmp.js"></script>

<script type="text/javascript">

var cmpo;

function cmp_loaded(key) {cmpo = CMP.get("cmp");

if (cmpo) {document.title = cmpo.config("name");

cmpo.addEventListener("model_load", "cmp_model_load");}}

function cmp_model_load(data) {document.title = cmpo.item("label");}

var flashvars = {name : "CMP4",

skin : "skins/vplayer.zip",

lists : "mylist.xml",

api: "cmp_loaded"};

var htm = CMP.create("cmp", "100%", "100%", "cmp.swf", flashvars);

document.getElementById("player").innerHTML = htm;

</script>只有回调cmp_loaded函数然后获取CMP所在flash的cmpo对象后,才可以进行JavaScript API通讯

相关分词: cmp 播放器 播放 放器