중요하고 필수적인 것은 앞쪽에 덜 중요하고 부가적인 것은 뒤쪽에 놓는다.
{
"videoId" : "cdge-093y5",
"user" : "seokim",
"module" : "player",
"button" : "mediaController",
"userAction" : "drag",
"customData" : {
"width" : ,
"height" : ,
"hdrType" : ,
"volume" : 10,
"breakStatus" : Pause,
"currentTime" : 0020,
"endingPoint" : 0350,
"draggingTime" : 04,
}
"queueReorderItem" : {
"id" : ,
"breakClipIds" : ,
"position" : 가로인지 세로인지 일듯,
"duration" : 검색에 걸린 시간,
"isWatched" : 봤던 구간인지?,
}
}
w("chrome.cast.media.QueueReorderItemsRequest", chrome.cast.media.za);
chrome.cast.media.Xa = function(a, b, c)
{
this.id = a;
this.breakClipIds = b;
this.position = c;
this.duration = void 0;
this.isWatched = !1;
this.isEmbedded = void 0
};
chrome.cast.media.Za = function(){this.whenSkippable = this.breakClipId = this.breakId = this.currentBreakClipTime = this.currentBreakTime = void 0};
w("chrome.cast.media.BreakStatus", chrome.cast.media.Za);
chrome.cast.media.qa = function(a, b, c, d)
{
this.start = a;
this.end = b;
this.isMovingWindow = c;
this.isLiveDone = d
};
w("chrome.cast.media.LiveSeekableRange", chrome.cast.media.qa);
f.cc = function()
{
if (this.liveSeekableRange &&void 0 != = this.liveSeekableRange.start &&void 0 != = this.liveSeekableRange.end)
{
if (this.playerState == chrome.cast.media.A.PLAYING && 0 <= this.a)
{
var a = (Date.now() - this.a) / 1E3, b = new chrome.cast.media.qa;
b.isMovingWindow = this.liveSeekableRange.isMovingWindow;
b.isLiveDone = this.liveSeekableRange.isLiveDone;
b.start = b.isMovingWindow ? this.liveSeekableRange.start + a : this.liveSeekableRange.start;
b.end = b.isLiveDone ? this.liveSeekableRange.end : this.liveSeekableRange.end + a;
return b
}
return this.liveSeekableRange
}
};
//첫 로딩
chrome.cast.media.vb = function(a)
{
this.type = "QUEUE_LOAD";
this.sessionId = this.requestId = null;
this.items = a;
this.startIndex = 0;
this.repeatMode = chrome.cast.media.W.OFF;
this.customData = null
};
w("chrome.cast.media.QueueLoadRequest", chrome.cast.media.vb);
//다음 올 영상 Update request하는 함수
chrome.cast.media.wa = function(a)
{
this.type = "QUEUE_INSERT";
this.sessionId = this.requestId = null;
this.items = a;
this.customData = this.insertBefore = null
};
w("chrome.cast.media.QueueInsertItemsRequest", chrome.cast.media.wa);
//Insert에서 불리는 Update함수
chrome.cast.media.xb = function(a)
{
this.type = "QUEUE_UPDATE";
this.sessionId = this.requestId = null;
this.items = a;
this.customData = null
};
w("chrome.cast.media.QueueUpdateItemsRequest", chrome.cast.media.xb);
//점프해서 넘어갔을 때 Update함수
chrome.cast.media.M = function()
{
this.type = "QUEUE_UPDATE";
this.customData = this.jump = this.currentItemId = this.sessionId = this.requestId = null
};
w("chrome.cast.media.QueueJumpRequest", chrome.cast.media.M);
chrome.cast.media.Aa = function()
{
this.type = "QUEUE_UPDATE";
this.customData = this.repeatMode = this.sessionId = this.requestId = null
};
w("chrome.cast.media.QueueSetPropertiesRequest", chrome.cast.media.Aa);
//아마 jump해서 영상 리스트를 새로 받기 전에 이전에 받았던 영상 리스트가 있다면 삭제
chrome.cast.media.ya = function(a)
{
this.type = "QUEUE_REMOVE";
this.sessionId = this.requestId = null;
this.itemIds = a;
this.customData = null
};
w("chrome.cast.media.QueueRemoveItemsRequest", chrome.cast.media.ya);
chrome.cast.media.za = function(a)
{
this.type = "QUEUE_REORDER";
this.sessionId = this.requestId = null;
this.itemIds = a;
this.customData = this.insertBefore = null
};
Queue 자료형을 이용해서 첫 로드 후 영상의 일정 지점에 도달하면 QueueLoadRequest함수를 통해서 Update type 함수를 부르고 다음 영상을 Queue에 저장
3가지 Update 방법
{
"isPlaying" : "pause" or "stop" or "play",
"isMovingWindow" : 어디로 움직이나?,
"interactionsInReplies" : {
"leavingComment" : true or false,
"isClickingReplies" : 몇 번,
"likingReplies" : 몇 번
}
}
{
}