cmp播放器的API接口
API是应用程序接口,CMP4的API用于提供调用的插件或页面脚本,从而控制CMP4。
通过API可以读取或设置CMP4的相关属性,调用一些方法,绑定一些事件进行监听等等。
其中CMP4支持API:
(1),全局配置中的插件和背景,自定义频谱混合器_src,以及logo,video_image,lrc_image。
(2)、皮肤中的5个窗口背景src。
(3)列表项的视频背景bg_video和歌词背景bg_lrc。
(4) JavaScript页面脚本(部分支持)必须允许脚本通信(allowScriptAccess=always)。
其中Flash的脚本必须是ActionScript 3.0,所以API接口分以下两种情况讨论:通过AS3的API接口通信,我们可以直接获取CMP数据,并在插件或皮肤中对其进行控制,
以下是所有支持的属性、方法和事件。
属性属性:
cmp:对象;返回cmp对象
config:Object;获取cmp全局配置,包括所有可读和可写的全局配置,以及配置的其他只读属性,如当前回放状态state,可以通过for in语句查询。
项目:对象;获取当前播放项,包括所有列表项的属性,以及其他播放项的只读属性。用for in语句可以查询什么?
list _ XML:XML;获取对列表xml的引用
skin _ XML:XML list;获取对当前外观配置的引用。
工具:对象;返回cmp工具箱,主要包括:base64,effects,graphics,netclient,output,states,strings,types,zoom,zip。
win _ list:Object;
获取具有以下五个属性的五个窗口的引用:选项/列表/媒体/控制台/lrc。
当然,您也可以访问下一级的对象。如果您想访问播放按钮bt_play,您可以:
var Bt _ play = API . win _ list . console . Bt _ play;
结构和名称与皮肤包中的皮肤配置skin.xml相同。
方法:
addevent listener():void;
添加一个事件监听器,例如监听皮肤加载完成事件:
api.addEventListener(api.key,' skin_loaded ',skinHandler);
特别不同的是,这里的第一个参数需要传入api.key,这是一个唯一的键值,用于销毁所有移除了第三方flash的注册事件。
add proxy():void;
为协议添加代理函数,如src=proxy:函数名和函数参数,如:
api.addProxy(优酷,yk _ callback);
这样就可以使用自定义的yk_callback(函数参数)方法来解析协议:src=proxy:youku,函数参数。
Cookie():String read(cookie(name))和write (cookie(name,data))存储在本地,类似于浏览器cookie,但是没有时间过期限制。
removeEventListener():void;移除一个事件监听器,比如API . remove event listener(' skin _ loaded ',skinhandler);
send event():void;
发送一个事件,比如:API . send event(view _ play);
如果有一个参数数据要传递,那就是:api.sendEvent(view_play,data);
sendState():void;
发送新的播放状态,例如将播放状态更改为正连接:
api.sendState(正在连接);
toString():String;打印api的所有属性、方法和事件类型,以便于访问所有支持的API。
事件类型事件:按字母顺序排列
当api发送api共享事件时调度。
当api_removeapi插件被移除时调用。
当control_fullscreen的全屏状态更改时调度。
当control_link打开链接的页面时调度。
当control_load音乐开始加载时调度。
Control_max在发生变化时最大化调度。事件的数据会作为lrc_max还是video_max传递?
当control_mute的静音状态更改时调度
当control_next播放下一首时调度。
当control_pause暂停时调度。
播放期间的控制播放计划
当control_playmode播放模式更改时调度。
当control_prev播放上一个时调度。
control_progress进度更改时调度。
当control_stop停止时调度。
当control_volume的音量改变时调度。
在control_win窗口打开和关闭时调度。
当与control_winbt窗口对应的按钮的状态更改时调度。
项目_已删除
当列表项被删除时调度。
事件的数据将返回删除项对象。
当list_change列表已经更改时调度,表示新列表已经刷新,可以用于播放等操作。
列表_加载
当列表开始加载时调度。
事件的数据可以传递到新指定的配置列表中进行加载。
列表_已加载
在加载列表内容时调度,会调度多个列表,每次都会解析加载的列表数据,然后追加到主列表中,再刷新列表。
事件的数据可以通过新指定的xml列表内容字符进行解析。该功能方便外部调用和直接输入列表内容。
lrc _完成
歌词成功加载时调度。
事件数据返回当前加载的歌词类型:lrc或kmc。
lrc _错误
当歌词加载或解析不正确时调度。
事件数据将返回一条错误消息
lrc_load
当当前音乐的歌词开始加载时调度。
可以传入事件数据来指定当前音乐的歌词地址,支持lrc和kmc地址。
lrc_loaded
加载歌词时调度。
事件数据可以传入指定的歌词内容,支持lrc和kmc格式内容。
Lrc_max切换歌词最大化状态。
lrc_resize歌词大小改变时的调度,包括缩放歌词。
lrc_rowchange
当当前歌词行的内容更改时调度。仅支持lrc和kmc格式。
事件数据将传回当前行的歌词。
有了这个事件,就可以方便地调用js api在浏览器的标题栏或状态栏中打印当前位置的歌词。
混合器_颜色
当调音台颜色更改时调度。
事件数据可以传入新的颜色值。
混合器_置换
切换混音器的替换效果状态时的调度。
事件数据可以以真或假的形式传入。
混合器_过滤器
当调音台的滤镜效果状态切换时调度。
事件数据可以以真或假的形式传入。
混音器_下一个
使用下一个混音器效果时调度。
事件数据可以传入下一个光谱效果的id。
混合器_上一个
使用最后一个混音器效果时调度。
事件数据可以传入下一个光谱效果的id。
型号_变更
模块更改时的调度
事件数据可以传递到要使用的新模块类型中。
模型_错误
当当前项中出现错误时调度。
事件数据将返回一条错误消息
模型_负载
当模块开始加载时调度。
事件数据可以传递到要播放媒体的url中。
下载当前项时调度。
下载当前项目时调度Model_loading。
模型_元
当当前项获取元信息时调度。
事件数据将返回一个元数据对象。
当前项目第一次开始播放时会调度Model_start。一般此时会加载歌词或者显示频谱。
模型状态
当当前项的状态更改时调度。
事件数据将返回到当前状态,所有支持的状态代码如下:
未定义就是未定义。
连接
缓冲区
玩就是玩。
暂停已暂停。
停了就停了。
完成播放完成
重新连接会重试连接
当状态发生变化时,当前状态对应的描述会显示在皮肤的状态栏中,可以自定义皮肤配置的语言。
当前项目的播放时间改变时调度Model_time。
插件_加载
当插件和后台开始加载时调度。
可以通过传入新指定的配置插件来加载事件数据(不支持后台)。
当由plugins_loadedplugins参数指定的所有插件都已加载时调度(此时,将首次加载由list列表指定的文件)。
插件_删除插件,并在后台删除时调度
当resize player舞台更改大小时调度。
皮肤_变化
当外观id的外观更改时调度。
事件数据可以直接传入新的皮肤id。
当skin_complete皮肤显示完成时调度。
皮肤负荷
当外观开始加载时调度。
可以通过传入新指定的配置皮肤参数来加载事件数据。
当skin_loaded皮肤完成加载时调度。
视频_黑白
是否为视频启用了黑白效果滤镜。
事件数据可以以真或假的形式传入。
视频_效果
当视频的ColorMatrixFilter更改时调度。
事件数据可以传入用英文逗号分隔的数组值,以创建新的ColorMatrixFilter ColorMatrix过滤器。
视频_亮点
是否为视频启用了高亮显示过滤器。
事件数据可以以真或假的形式传入。
视频最大化切换时的Video_max调度。
当视频大小改变时调度。
视频_旋转
在旋转时安排视频。
事件数据可以传入旋转的角度值,如90度。
视频_缩放模式
视频缩放模式改变时的调度。
事件数据可以传入一个支持缩放模式的id,支持0,1,2,3。
视频平滑
为视频启用平滑效果时调度。
事件数据可以以真或假的形式传入。
当view_console更改控制窗口的状态时调度。
单击快进按钮时调度View_forward。
当view_fullscreen更改全屏状态时调度。
查看_项目
对播放项进行更改时调度。
查看_链接
单击链接按钮时调度
可以通过传入新指定的链接来打开事件数据。
当view_list更改列表窗口时调度。
当view_lrc更改歌词窗口时调度。
当view_mute单击静音按钮时调度。
单击“下一步”按钮时调度View_next。
当view_option更改设置窗口时调度。
查看_播放
当单击播放或暂停按钮时调度。
事件的数据可以通过list id位置,指示播放哪个。
单击“上一步”按钮时调度View_prev。
查看进度
拖动播放进度条时调度。
事件数据可以按指定的进度百分比传入。
当view_random单击随机播放模式按钮时调度。
当view_repeat单击重复模式按钮时调度。
单击“倒带”按钮时,会安排View_rewind。
单击单人游戏模式按钮时查看单人游戏。
单击停止按钮时调度View_stop。
安排view_video更改视频窗口状态的时间。
视图_体积
拖动音量条时调度。
事件数据可以传入指定的音量音量值和平移值,用英文逗号分隔,比如:1,0。
具体API接口应用的例子可以在安装包的例子中找到:plugins/ApiExample。as或者直接到官方插件库。
附上所有源文件:需要先获取CMP所在flash的对象,也就是例子中的cmpo,来调用以下函数。获取方法参见使用示例。
CMP _ API();只读,返回cmp支持的所有API信息,包括CMP支持的API var str = cmpo . CMP _ API();
config();1,读取CMP当前所有全局配置,返回一个Object对象,包含所有可读可写的全局配置属性设置,以及其他只读属性var config = cmpo . config();
2.读取一个已配置的属性值,可以查询for in语句具体支持哪些属性。
var name = cmpo . config(name);
var name = cmpo.config()。姓名;
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 = ' & lt列表& gt& ltm label=test src=test .mp3 />& lt/list & gt;';
cmpo . list _ XML(XML);
如果您需要覆盖原始音乐,您可以设置第二个参数来指示是否追加到原始列表。默认情况下表示追加,传入false表示不追加。列表将被重构并写入新的列表内容cmpo.list_xml(xml,false);
list();
1,返回CMP列表号的所有信息,包括未打开的列表。
将返回一个数组,数组中的每一项都是Object类型的音乐项对象。
var arr = cmpo . list();
一级列表的数目读取var num = cmpo.list()。长度;
返回第二项,数组从0开始,第二项的索引为1 var m2 = cmpo . list()[1];
如果这个音乐项是一个目录,就会有一个children属性,这意味着它下面的子列表也是一个数组。
以此类推,这样我们就可以逐个循环遍历整个列表。
当然,一个音乐项也有一个父属性,表示它的父目录对象。
var m2 _ arr = m2.children
2.返回指定的item对象。
该参数可以是具有唯一键值的对象,也可以直接传入字符键值。
键值可以从上面1中的列表项对象中读取。
var item = cmpo . list(m2);
var ITEM = cmpo . list(ITEM _ 1);
3.读取该项的一个属性,var src = cmpo.list (item _ 1,src);
如果传入的参数是该项支持的方法名,则执行该项的方法之一。
当前支持:播放播放此项目,打开打开此目录,关闭关闭此目录,切换开关,删除删除此项目。
cmpo.list(ITEM_1,播放);
skin _ XML();只读,返回当前皮肤概要内容的xml字符形式:var XML = cmpo . skin _ XML();
皮肤();1,读取皮肤元素的一个属性值,1参数表示皮肤元素的位置,第二个参数是元素的属性名。
var width = cmpo.skin(控制台,宽度);
var xywh = cmpo.skin(控制台。bt_play,xywh);
2.修改组件的一个属性,如果修改成功,返回truempo.skin (console.bt _ play,xywh,0,0,100,20);
send event();
向CMP发送事件
第1个参数是事件类型。有关所有支持的类型,请参见AS3中所有事件类型的列表。
第二个参数是要传入的数据(可选)。
cmpo . send event(view _ play);
cmpo.sendEvent(view_play,2);
addevent listener();
添加一个js监听方法。
参数1是事件类型,如上。
第二个参数是字符串格式的回调函数名。
cmpo . addevent listener(item _ deleted,del);
函数del(数据){ }
removeEventListener();移除注册的js监听方法cmpo。removeeventlistener(item _ deleted,del);
cookie();CMP的通用存储接口可以在本地计算机上存储和读取存储的数据。flash需要启用本地存储(默认容量为10K),这些数据永久存储,跨浏览器。
cmpo.cookie(名称,CMP 4);
var name = cmpo . cookie(name);