no commit message
This commit is contained in:
@@ -0,0 +1,432 @@
|
||||
package ckaction.process {
|
||||
import ckaction.act.script;
|
||||
import ckaction.act.loadXml;
|
||||
import ckaction.C.C;
|
||||
import ckaction.act.des;
|
||||
import ckaction.act.log;
|
||||
import flash.events.ErrorEvent;
|
||||
|
||||
public class analysisVideoUrl {
|
||||
private var videoHandler: Function = null;
|
||||
private var videoArr: Array = [];
|
||||
public function analysisVideoUrl(fun: Function) {
|
||||
// constructor code
|
||||
videoHandler = fun;
|
||||
//script.traceObject(C.CONFIG["flashvars"]);
|
||||
analysis(C.CONFIG["flashvars"]["video"]);
|
||||
}
|
||||
private function analysis(video: * ): void {
|
||||
trace("开始分析视频",script.getType(video));
|
||||
try {
|
||||
var obj: Object = {};
|
||||
var i: int = 0;
|
||||
var split:String=C.CONFIG["config"]["split"];
|
||||
//trace("开始=================");
|
||||
//trace(video);
|
||||
//script.traceObject(video);
|
||||
//trace("=============", script.getType(video));
|
||||
//trace("结束");
|
||||
switch (script.getType(video)) {
|
||||
case "object":
|
||||
obj = video;
|
||||
if (obj.hasOwnProperty("video")) {
|
||||
if (script.getType(obj["video"]) == "array") {
|
||||
if (obj["video"].length > 0) {
|
||||
if (obj["video"][0].hasOwnProperty("video")) {
|
||||
//新数据形式
|
||||
trace("新");
|
||||
videoArr = obj["video"];
|
||||
C.CONFIG["flashvars"] = script.mergeObject(C.CONFIG["flashvars"], obj);
|
||||
trace("执行analysisArr,39");
|
||||
analysisArr();
|
||||
} else if (obj["video"][0].hasOwnProperty("seconds")) {
|
||||
//旧数据形式
|
||||
trace("旧");
|
||||
analysisOld(obj);
|
||||
} else {
|
||||
trace("不知道什么格式");
|
||||
C.CONFIG["flashvars"] = script.mergeObject(C.CONFIG["flashvars"], obj);
|
||||
try {
|
||||
var aarr: Array = obj["video"];
|
||||
videoArr = [];
|
||||
for (i = 0; i < aarr.length; i++) {
|
||||
videoArr.push({
|
||||
file: aarr[i][0],
|
||||
type: aarr[i][1].replace("video/", "") != "" ? aarr[i][1].replace("video/", "") : script.getFileExt(aarr[i][0]),
|
||||
definition: aarr[i][2],
|
||||
weight: Number(aarr[i][3])
|
||||
|
||||
});
|
||||
}
|
||||
analysis(videoArr);
|
||||
} catch (event: Error) {
|
||||
videoArr = null;
|
||||
trace("执行analysisArr,63");
|
||||
analysisArr();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
trace("格式错误");
|
||||
C.CONFIG["flashvars"] = script.mergeObject(C.CONFIG["flashvars"], obj);
|
||||
videoArr = null;
|
||||
trace("执行analysisArr,71");
|
||||
analysisArr();
|
||||
}
|
||||
} else {
|
||||
if (obj["video"].hasOwnProperty("file") && script.getType(obj["video"]["file"]) == "array") {
|
||||
analysisOld2(obj);
|
||||
} else {
|
||||
//video是个对象需要再加载
|
||||
C.CONFIG["flashvars"] = script.mergeObject(C.CONFIG["flashvars"], obj);
|
||||
analysis(obj["video"]);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
if (obj.hasOwnProperty("file")) {
|
||||
C.CONFIG["flashvars"] = script.mergeObject(C.CONFIG["flashvars"], obj);
|
||||
videoArr = [obj];
|
||||
trace("执行analysisArr,88");
|
||||
analysisArr();
|
||||
} else if (obj.hasOwnProperty("url")) {
|
||||
C.CONFIG["flashvars"] = script.mergeObject(C.CONFIG["flashvars"], obj);
|
||||
if (script.getType(obj["url"]) == "string" && obj["url"].toString().substr(0, 8) == "website:") {
|
||||
analysis("website:" + obj["url"].replace("website:", ""));
|
||||
} else {
|
||||
videoArr = null;
|
||||
trace("执行analysisArr,96");
|
||||
analysisArr();
|
||||
}
|
||||
} else {
|
||||
C.CONFIG["flashvars"] = script.mergeObject(C.CONFIG["flashvars"], obj);
|
||||
videoArr = null;
|
||||
trace("执行analysisArr,101");
|
||||
analysisArr();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
case "array": //普通数组调用
|
||||
trace("普通数组形式的");
|
||||
trace(video);
|
||||
videoArr = video;
|
||||
trace("执行analysisArr,114");
|
||||
analysisArr();
|
||||
break;
|
||||
default: //普通调用,字符串类型
|
||||
var str: String = video;
|
||||
if (str.substr(0, 8) == "website:") {
|
||||
str = des.getString(str.replace("website:", ""));
|
||||
loadUrl(str);
|
||||
} else {
|
||||
//trace("只有地址", video);
|
||||
video=decodeURIComponent(video);
|
||||
new log("video-split:"+split);
|
||||
if (video.indexOf(split) == -1) {
|
||||
video = des.getString(video);
|
||||
videoArr = [{
|
||||
file: video,
|
||||
type: C.CONFIG["flashvars"]["type"] ? C.CONFIG["flashvars"]["type"] : script.getFileExt(video).replace(".", ""),
|
||||
weight: 0,
|
||||
definition: ""
|
||||
}];
|
||||
} else {
|
||||
new log("video:"+video);
|
||||
trace("=========================================");
|
||||
trace(video);
|
||||
var vArr: Array = video.split(split);
|
||||
//new log(vArr);
|
||||
//script.traceObject(vArr);
|
||||
var dArr: Array = [],
|
||||
wArr: Array = [],
|
||||
tArr:Array=[];
|
||||
if (C.CONFIG["flashvars"].hasOwnProperty("definition")) {
|
||||
dArr = C.CONFIG["flashvars"]["definition"].split(",");
|
||||
}
|
||||
if (C.CONFIG["flashvars"].hasOwnProperty("weight")) {
|
||||
wArr = C.CONFIG["flashvars"]["weight"].split(",");
|
||||
}
|
||||
|
||||
if (C.CONFIG["flashvars"].hasOwnProperty("type")) {
|
||||
var typeTemp:String=C.CONFIG["flashvars"]["type"];
|
||||
if(typeTemp.indexOf(",")>-1){
|
||||
tArr = C.CONFIG["flashvars"]["type"].split(",");
|
||||
}
|
||||
else{
|
||||
tArr = C.CONFIG["flashvars"]["type"].split(split);
|
||||
}
|
||||
}
|
||||
for (var n: int = 0; n < vArr.length; n++) {
|
||||
var tObj: Object = {
|
||||
file: vArr[n]
|
||||
//type: C.CONFIG["flashvars"]["type"] ? C.CONFIG["flashvars"]["type"] : script.getFileExt(vArr[n])
|
||||
};
|
||||
if (dArr.length > n) {
|
||||
tObj["definition"] = dArr[n];
|
||||
}
|
||||
if (wArr.length > n) {
|
||||
tObj["weight"] = wArr[n];
|
||||
}
|
||||
if (tArr.length > n) {
|
||||
tObj["type"] = tArr[n];
|
||||
}
|
||||
if(!tObj.hasOwnProperty("type")){
|
||||
tObj["type"]= script.getFileExt(tObj["file"]);
|
||||
}
|
||||
videoArr.push(tObj);
|
||||
}
|
||||
}
|
||||
trace("执行analysisArr,166");
|
||||
analysisArr();
|
||||
}
|
||||
break;
|
||||
}
|
||||
} catch (event: Error) {
|
||||
trace("出错");
|
||||
videoArr = null;
|
||||
trace("执行analysisArr,173");
|
||||
analysisArr();
|
||||
}
|
||||
}
|
||||
private function analysisOld(obj: Object): void {
|
||||
//分析旧版形式
|
||||
//script.traceObject(obj);
|
||||
try {
|
||||
var vArr: Array = obj["video"];
|
||||
var nArr: Array = [];
|
||||
var type: String = "";
|
||||
var i: int = 0;
|
||||
for (i = 0; i < vArr.length; i++) {
|
||||
var tArr: Object = {
|
||||
file: vArr[i]["file"],
|
||||
bytesTotal: vArr[i]["size"],
|
||||
duration: vArr[i]["seconds"]
|
||||
};
|
||||
type = script.getFileExt(vArr[i]["file"]).replace(".", "");
|
||||
nArr.push(tArr);
|
||||
}
|
||||
var nObj: Object = {
|
||||
video: nArr,
|
||||
type: type,
|
||||
weight: 0,
|
||||
definition: ""
|
||||
};
|
||||
if (obj.hasOwnProperty("flashvars") && obj["flashvars"]) {
|
||||
var temp: String = script.replace(obj["flashvars"], ["{"], [""]);
|
||||
var arr: Array = temp.split("}");
|
||||
var fObj: Object = {};
|
||||
for (i = 0; i < arr.length; i++) {
|
||||
var temp2: String = arr[i];
|
||||
if (temp2 != "") {
|
||||
var arr2: Array = temp2.split("->");
|
||||
if (arr2[0] != "" && arr2[1] != "") {
|
||||
fObj[arr2[0]] = arr2[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
C.CONFIG["flashvars"] = script.mergeOldFlashvars(C.CONFIG["flashvars"], fObj);
|
||||
}
|
||||
videoArr = [nObj];
|
||||
trace("执行analysisArr,216");
|
||||
analysisArr();
|
||||
} catch (event: Error) {
|
||||
videoArr = null;
|
||||
trace("执行analysisArr,220");
|
||||
analysisArr();
|
||||
}
|
||||
}
|
||||
private function analysisOld2(obj: Object): void {
|
||||
//分析旧版形式
|
||||
//script.traceObject(obj);
|
||||
try {
|
||||
var vArr: Array = obj["video"]["file"];
|
||||
var sArr: Array = obj["video"]["size"];
|
||||
var eArr: Array = obj["video"]["seconds"];
|
||||
var nArr: Array = [];
|
||||
var type: String = "";
|
||||
var i: int = 0;
|
||||
for (i = 0; i < vArr.length; i++) {
|
||||
var tArr: Object = {
|
||||
file: vArr[i],
|
||||
bytesTotal: sArr[i],
|
||||
duration: eArr[i]
|
||||
};
|
||||
type = script.getFileExt(vArr[i]).replace(".", "");
|
||||
nArr.push(tArr);
|
||||
}
|
||||
var nObj: Object = {
|
||||
video: nArr,
|
||||
type: type,
|
||||
weight: 0,
|
||||
definition: ""
|
||||
};
|
||||
if (obj.hasOwnProperty("flashvars") && obj["flashvars"]) {
|
||||
//trace("包含flashvars");
|
||||
var temp: String = script.replace(obj["flashvars"], ["{"], [""]);
|
||||
var arr: Array = temp.split("}");
|
||||
var fObj: Object = {};
|
||||
for (i = 0; i < arr.length; i++) {
|
||||
var temp2: String = arr[i];
|
||||
if (temp2 != "") {
|
||||
var arr2: Array = temp2.split("->");
|
||||
if (arr2[0] != "" && arr2[1] != "") {
|
||||
fObj[arr2[0]] = arr2[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
//script.traceObject(fObj);
|
||||
C.CONFIG["flashvars"] = script.mergeOldFlashvars(C.CONFIG["flashvars"], fObj);
|
||||
}
|
||||
videoArr = [nObj];
|
||||
trace("执行analysisArr,267");
|
||||
analysisArr();
|
||||
} catch (event: Error) {
|
||||
videoArr = null;
|
||||
trace("执行analysisArr,271");
|
||||
analysisArr();
|
||||
}
|
||||
}
|
||||
private function loadUrl(url: String) { //加载网址获取视频地址后应该判断是旧式的还是新式的
|
||||
//trace(url);
|
||||
new loadXml(url, function (data: * ) {
|
||||
//trace(data);
|
||||
//script.traceObject(data);
|
||||
if (data) {
|
||||
analysis(data);
|
||||
} else {
|
||||
videoArr = null;
|
||||
trace("执行analysisArr,284");
|
||||
analysisArr();
|
||||
}
|
||||
});
|
||||
}
|
||||
private function getAD(adv: String = "", time: String = "", link: String = ""): Array {
|
||||
var vars: Object = C.CONFIG["flashvars"];
|
||||
var adArr: Array = vars[adv].split(",");
|
||||
var timeArr: Array = [],
|
||||
linkArr: Array = [];
|
||||
var ad: Array = [];
|
||||
if (vars.hasOwnProperty(time)) {
|
||||
timeArr = vars[time].split(",");
|
||||
}
|
||||
if (vars.hasOwnProperty(link)) {
|
||||
linkArr = vars[link].split(",");
|
||||
}
|
||||
for (var i: int = 0; i < adArr.length; i++) {
|
||||
var obj: Object = {
|
||||
file: adArr[i],
|
||||
type: script.getFileExt(adArr[i]).replace(".", "")
|
||||
};
|
||||
if (timeArr.length > i) {
|
||||
obj["time"] = timeArr[i];
|
||||
} else {
|
||||
obj["time"] = C.CONFIG["style"]["advertisement"]["time"];
|
||||
}
|
||||
if (linkArr.length > i) {
|
||||
obj["link"] = linkArr[i];
|
||||
} else {
|
||||
obj["link"] = "";
|
||||
}
|
||||
ad.push(obj);
|
||||
}
|
||||
return ad;
|
||||
}
|
||||
private function analysisArr(): void {
|
||||
var n: int = 0,
|
||||
m: int = 0,
|
||||
i: int = 0;
|
||||
if (videoArr) {
|
||||
C.CONFIG["flashvars"]["video"] = videoArr;
|
||||
for (i = 0; i < videoArr.length; i++) {
|
||||
if (videoArr[i].hasOwnProperty("weight")) {
|
||||
if (videoArr[i]["weight"] > n) {
|
||||
n = videoArr[i]["weight"];
|
||||
m = i;
|
||||
}
|
||||
}
|
||||
else{
|
||||
n=0;
|
||||
m=i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
//分析广告
|
||||
var fvars: Object = C.CONFIG["flashvars"];
|
||||
var front: Array = [];
|
||||
var ad: Object = {};
|
||||
var isAd: Boolean = false;
|
||||
if (fvars.hasOwnProperty("adfront")) {
|
||||
ad["front"] = getAD("adfront", "adfronttime", "adfrontlink");
|
||||
isAd = true;
|
||||
}
|
||||
if (fvars.hasOwnProperty("adpause")) {
|
||||
ad["pause"] = getAD("adpause", "adpausetime", "adpauselink");
|
||||
isAd = true;
|
||||
}
|
||||
if (fvars.hasOwnProperty("adinsert")) {
|
||||
ad["insert"] = getAD("adinsert", "adinserttime", "adinsertlink");
|
||||
isAd = true;
|
||||
}
|
||||
if (fvars.hasOwnProperty("adend")) {
|
||||
ad["end"] = getAD("adend", "adendtime", "adendlink");
|
||||
isAd = true;
|
||||
}
|
||||
if (isAd && ad) {
|
||||
C.CONFIG["flashvars"]["advertisements"] = ad;
|
||||
}
|
||||
|
||||
//分析广告
|
||||
//分析提示点
|
||||
if (fvars.hasOwnProperty("promptspot") && fvars.hasOwnProperty("promptspottime")) {
|
||||
if (script.getType(fvars["promptspot"]) == "string") {
|
||||
var prompt: Array = fvars["promptspot"].split(",");
|
||||
var prompttime: Array = fvars["promptspottime"].split(",");
|
||||
var promptSpot: Array = [];
|
||||
if (prompt.length == prompttime.length) {
|
||||
for (i = 0; i < prompt.length; i++) {
|
||||
promptSpot.push({
|
||||
words: prompt[i],
|
||||
time: prompttime[i]
|
||||
});
|
||||
}
|
||||
C.CONFIG["flashvars"]["promptSpot"] = promptSpot;
|
||||
}
|
||||
}
|
||||
}
|
||||
//trace(fvars["previewscale"]);
|
||||
if (fvars.hasOwnProperty("preview") && fvars["preview"]) {
|
||||
if (script.getType(fvars["preview"]) == "string") {
|
||||
C.CONFIG["flashvars"]["preview"] = {
|
||||
file: fvars["preview"].split(","),
|
||||
scale: fvars["previewscale"]
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
if (videoArr) {
|
||||
//script.traceObject(videoArr[m]);
|
||||
if (videoArr[m].hasOwnProperty("video")) {
|
||||
if (script.getType(videoArr[m]["video"]) == "array") {
|
||||
var nArr: Array = videoArr[m]["video"];
|
||||
var timeTotal: Number = 0;
|
||||
for (i = 0; i < nArr.length; i++) {
|
||||
if (nArr[i].hasOwnProperty("duration")) {
|
||||
timeTotal += Number(nArr[i]["duration"]);
|
||||
}
|
||||
}
|
||||
C.CONFIG["flashvars"]["duration"] = timeTotal;
|
||||
//trace("总时间:",timeTotal);
|
||||
}
|
||||
}
|
||||
}
|
||||
trace("发送一次newPlayerHandler");
|
||||
script.traceObject(videoArr);
|
||||
videoHandler(videoArr, m);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user