2011年11月24日星期四

CMP4 javascript WMP12

<SCRIPT type=text/javascript>
if(typeof window.CMP==="undefined") {
var CMP=window.CMP=new (function(){
var msie=/msie/.test(navigator.userAgent.toLowerCase());
this.write=function(id, width, height, url, vars, params, attrs){
document.write(this.create(id, width, height, url, vars, params, attrs));
};
this.get=function(id) {
var o = document.getElementById(id);
if (!o || o.nodeName.toLowerCase() != "object") {
o = msie ? window[id] : document[id];
}
return o;
};
this.create=function(id, width, height, url, vars, params, attrs){
var _attrs = {
width : width,
height : height,
id : id
};
appendObj(_attrs, attrs);
var _params = { allowfullscreen : "true", allowscriptaccess : "always", wmode : "transparent" };
appendObj(_params, params);
var _vars = "";
if (vars && typeof vars === "string") {
_vars = vars;
} else if (vars && typeof vars === "object") {
var arr = [];
for (var v in vars) {
arr.push(v + "=" + encodeURIComponent(vars[v]));
}
_vars = arr.join("&");
}
if (_vars) {
_params.flashvars = _vars;
}
var htm = '<object ';
htm += msie? 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ' : 'type="application/x-shockwave-flash" data="'+url+'" ';
for (var a in _attrs) {
htm += a + '="'+_attrs[a]+'" ';
}
htm += msie? '><param name="movie" value="'+url+'" />' : '>';
for (var p in _params) {
htm += '<param name="'+p+'" value="'+_params[p]+'" />';
}
htm += '</object>';
return htm;
};
function appendObj(_obj, obj) {
if (obj && typeof obj === "object") {
for (var k in obj) {
_obj[k] = obj[k];
}
}
return _obj;
}
})();
}
</SCRIPT>
<div style="position: relative; margin: 0px auto; width: 609px; height: 404px" id="cmp_wmp">
<SCRIPT type=text/javascript>
//将cmp放在一个固定容器里,便于后面设置位置.
CMP.write("cmp","100%","100%","http://storage.live.com/items/B341993049BCCD2F!141/","url=&skin=&lists=&click_play=1&video_scalemode=2&api=cmp_loaded");
</SCRIPT></div>
<div style="text-align: left; margin: 10px auto; width: 609px">
<div>名称: <input id="music_label" onclick="this.select();" value="电[www.tv.master.pl]视" type="text" /> 类型: <select id="music_type">
<option value="">自动识别</option>
<option value="1">MP3音频</option>
<option value="2">FLV视频</option>
<option value="3" selected="selected">WMP类型</option>
<option value="4">动画图片</option>
</select></div>
<div style="margin: 5px 0px">地址: <input style="width: 456px" id="music_src" onclick="this.select();" value="mms://89.151.0.13:8080/" type="text" /> mms/wmv/flv</div>
<div><input type="button" onclick="addToList();" value="您可以粘贴电视地址 添加到列表进行播放" /></div>
</div>
<SCRIPT type=text/javascript>
var cmpo,wmpo;
function cmp_loaded(key) {
//获取cmp对象
cmpo = CMP.get("cmp");
if (!cmpo) {
return;
}
cmpo.addEventListener("model_start", "startHandler");
cmpo.addEventListener("model_state", "stateHandler");
//全屏按钮点击时侦听事件
cmpo.addEventListener("view_fullscreen", "fsHandler");


//添加一个测试列表
//================
var xml = '<list><m type="wmp" label="WMP类型,在wmp中播放" src="rtsp://115.84.182.65/DongThap" /><m type="video" label="rtmp类型,在cmp中播放" src="trt" rtmp="rtmp://118.69.176.149/live" rotation="180" /><m type="video" label="/www.9online.it/" rtmp="rtmp://flash.streamingmedia.it/canale9/" src="livestream" /><m type="wmp" label="/live.afaqtv.info/" src="rtsp://live.afaqtv.info/afaq" /><m type="wmp" label="alresalah.net/live" src="http://213.131.66.30/rotanaresala" /><m type="wmp" label="israelitas.com.br" src="mms://74.86.142.194/auto_play" /><m type="video" label="live.aynews.net.cn rd" src="carm1" rtmp="rtmp://61.163.75.34/live" /><m type="video" label="live.aynews.net.cn tv" src="anyangzb1" rtmp="rtmp://61.163.75.34/live" rotation="180" /><m type="2" label="南宁电视 /NNTV_XW/" src="http://media-live-cdn.cutv.com/channels/cutv/NNTV_XW/flv:sd/live" /><m type="2" label="南宁电视 /NNTV_DS/" src="http://media-live-cdn.cutv.com/channels/cutv/NNTV_DS/flv:sd/live" /><m type="2" label="南宁电视 /NNTV_YS/" src="http://media-live-cdn.cutv.com/channels/cutv/NNTV_YS/flv:sd/live" /><m type="2" label="南宁电视 /NNTV_GG/" src="http://media-live-cdn.cutv.com/channels/cutv/NNTV_GG/flv:sd/live" /><m type="2" label="淮安 电视 / test /" src="test" rtmp="rtmp://218.2.25.44:1935/live" /><m type="2" label="淮安 电视 / hagg /" src="hagg" rtmp="rtmp://218.2.25.44:1935/live" /><m type="2" label="淮安 电视 / live /" src="live" rtmp="rtmp://218.2.25.44:1935/live" /><m type="wmp" label="zjmc.tv/channel01" src="rtsp://58.217.107.10/c01" /><m type="wmp" label="zjmc.tv/channel02" src="rtsp://58.217.107.10/c02" /><m type="wmp" label="zjmc.tv/channel03" src="rtsp://58.217.107.10/c03" /><m type="wmp" label="zjmc.tv/channel04" src="rtsp://58.217.107.10/c04" /></list>';
cmpo.list_xml(xml);
//================


//取得wmp对象,并添加到cmp所在容器
wmpo = document.getElementById("WMP_" + key);
cmpo.parentNode.appendChild(wmpo);
//隐藏wmp控制面板等,仅显示视频窗
wmpo.uiMode = "None";
wmpo.fullScreen = false;
wmpo.stretchToFit = true;
wmpo.enableContextMenu = true;
wmpo.style.position = "absolute";
showWmp(false);
}
function showWmp(display) {
if (wmpo) {
wmpo.style.visibility = display ? "visible" : "hidden";
//移动到视频窗口的位置
var top = 0;
var left = 0;
if (!cmpo.config().video_max) {
top = parseInt(cmpo.skin("media", "y")) + parseInt(cmpo.skin("media.video", "y"));
left = parseInt(cmpo.skin("media", "x")) + parseInt(cmpo.skin("media.video", "x"));
}
wmpo.style.top = top + "px";
wmpo.style.left = left + "px";
//设置wmp的宽高和cmp里的视频宽高一样
wmpo.width = cmpo.config().video_width;
wmpo.height = cmpo.config().video_height;
//锁定窗口,防止拖动时,wmp的视频会错位
cmpo.skin("console", "lock", 1);
}
}
function startHandler(data) {
var item = cmpo.item();
var iswmp = false;
//当前项是否为wmp类型
if (item.type == "wmp") {
iswmp = true;
}
showWmp(iswmp);
cmpo.allowFullScreen = !iswmp;
cmpo.config("fullscreen", iswmp);
}
function stateHandler(data) {
//播放状态为完成或停止时,隐藏wmp
if (data == "completed" || data == "stopped") {
showWmp(false);
}
}
function fsHandler(data) {
//设置wmp全屏
var item = cmpo.item();
if (item.type == "wmp") {
wmpo.fullScreen = true;
}
}

function $(id) { return document.getElementById(id); }
function addToList() {
var label = $("music_label").value;
var type = $("music_type").value;
var src = $("music_src").value;
var xml = '<list><m type="'+type+'" label="'+label+'" src="'+src+'" /></list>';
if (cmpo) {
cmpo.list_xml(xml);
//发送播放事件
cmpo.sendEvent("view_play", cmpo.list().length);
}
}
</SCRIPT>

没有评论:

发表评论