專利名稱:定制播放內(nèi)容的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通過(guò)網(wǎng)絡(luò)提供多媒體內(nèi)容播放的技術(shù),特別涉及為用戶提供定制的多媒體內(nèi)容播放的方法與裝置。
背景技術(shù):
在當(dāng)前通過(guò)網(wǎng)絡(luò)讓用戶來(lái)編輯內(nèi)容播放列表時(shí),通常有兩種方式,一種方式是允許用戶將內(nèi)容按順序排列,然后按順序播放。另外一種方式是將設(shè)定好播放時(shí)間的播放內(nèi)容放到網(wǎng)上,供用戶選擇設(shè)定好的內(nèi)容播放列表進(jìn)行播放。另外,現(xiàn)有技術(shù)的這些方式還不能支持用戶在網(wǎng)頁(yè)上按自己的意愿定制包含視頻直播、音頻直播、視頻點(diǎn)播、音頻點(diǎn)播等各類內(nèi)容的播放時(shí)間、使這些不同類型的播放內(nèi)容構(gòu)成一個(gè)視聽(tīng)內(nèi)容的播放列表呈現(xiàn)給用戶,以類似于電臺(tái)廣播的方式在預(yù)定的周期內(nèi)按時(shí)間順序播放定制的播放列表中的各種內(nèi)容。
發(fā)明內(nèi)容
本發(fā)明的目的之一是要提供一種新的提供用戶在網(wǎng)絡(luò)上定制包含視頻直播、音頻直播、視頻點(diǎn)播、音頻點(diǎn)播等各類內(nèi)容的內(nèi)容播放列表的方法與裝置。本發(fā)明的又一目的是提供一種使用戶簡(jiǎn)單地操作以編排內(nèi)容播放列表的方法與
>J-U裝直。根據(jù)本發(fā)明的一個(gè)方面,提供了定制網(wǎng)絡(luò)播放內(nèi)容的方法,包括I)建立與多個(gè)不同播放內(nèi)容源的連接,為用戶提供訪問(wèn)不同播放內(nèi)容源的統(tǒng)一接
n,2)根據(jù)用戶對(duì)播放內(nèi)容的選擇,從所述不同的播放內(nèi)容源獲取內(nèi)容信息,所述內(nèi)容信息包括所述播放內(nèi)容的類型和時(shí)間屬性,3)根據(jù)所獲取的播放內(nèi)容的類型和時(shí)間屬性,確定所述播放內(nèi)容在內(nèi)容播放列表中的位置,以形成用戶定制的內(nèi)容播放列表。根據(jù)本發(fā)明的另一方面,提供了定制網(wǎng)絡(luò)播放內(nèi)容的裝置,包括I)單點(diǎn)登錄接口單元,建立與多個(gè)不同播放內(nèi)容源的統(tǒng)一接口,2)數(shù)據(jù)訪問(wèn)單元,根據(jù)用戶對(duì)播放內(nèi)容的選擇,通過(guò)所述統(tǒng)一接口從所述不同的播放內(nèi)容源獲取內(nèi)容信息,
3)播放列表生成單元,根據(jù)所獲取的內(nèi)容信息,確定所述播放內(nèi)容在內(nèi)容播放列表中的位置,生成用戶定制的內(nèi)容播放列表。通過(guò)上述方法和裝置的有益效果之一是,用戶可以在同一內(nèi)容播放列表中,添加視頻直播、音頻直播、視頻點(diǎn)播、音頻點(diǎn)播的內(nèi)容信息,實(shí)現(xiàn)在同一內(nèi)容播放列表中將來(lái)自不同資源的內(nèi)容信息進(jìn)行混編,從而使用戶能夠自己定制混合播放各種類型內(nèi)容的網(wǎng)絡(luò)電臺(tái)。此外,用戶可以簡(jiǎn)單而又直觀地操作來(lái)根據(jù)自己的喜好編輯內(nèi)容播放列表。
下面結(jié)合附圖對(duì)本發(fā)明的一些實(shí)施方式進(jìn)行說(shuō)明。圖I是本發(fā)明一實(shí)施方式的適用于網(wǎng)絡(luò)定制播放內(nèi)容的方法的系統(tǒng)示意框圖;圖2顯不了本發(fā)明一實(shí)施方式的時(shí)間軸形式的網(wǎng)絡(luò)播放內(nèi)容列表(時(shí)間安排表)的不意圖;
圖3是本發(fā)明一實(shí)施方式的實(shí)現(xiàn)定制網(wǎng)絡(luò)播放內(nèi)容的方法流程圖;圖4顯示了在本發(fā)明中使用的網(wǎng)頁(yè)播放器界面的示例;圖5是本發(fā)明一實(shí)施方式的網(wǎng)頁(yè)播放器播放內(nèi)容的流程圖。
具體實(shí)施例方式下面將結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例進(jìn)行描述。如圖I所示,本發(fā)明一實(shí)施方式的適用于網(wǎng)絡(luò)定制播放內(nèi)容的方法的系統(tǒng)包括多個(gè)內(nèi)容源10,存儲(chǔ)音頻、視頻格式的播放內(nèi)容及相關(guān)數(shù)據(jù);單點(diǎn)登錄接口 20,為用戶提供統(tǒng)一的單點(diǎn)登錄服務(wù),使用戶能夠通過(guò)單一的接口訪問(wèn)多個(gè)內(nèi)容源10,從而避免用戶定制播放列表和根據(jù)播放列表播放內(nèi)容需要訪問(wèn)多個(gè)內(nèi)容源的資源時(shí)需要頻繁登錄的問(wèn)題;后臺(tái)應(yīng)用單元30,響應(yīng)用戶通過(guò)瀏覽器(用戶界面)的請(qǐng)求,從內(nèi)容源10獲取內(nèi)容相關(guān)信息數(shù)據(jù),進(jìn)行過(guò)濾、分析等,并將處理結(jié)果反饋給瀏覽器,以及對(duì)外部瀏覽器提供語(yǔ)言無(wú)關(guān)接口供瀏覽器調(diào)用;瀏覽器單元40,為用戶提供呈現(xiàn)操作界面和操作結(jié)果(例如內(nèi)容播放列表,內(nèi)容視圖顯示,比例放大與縮小時(shí)間軸視圖等)顯示的瀏覽器。通過(guò)該系統(tǒng),解決了常規(guī)的內(nèi)容定制系統(tǒng)不能將視頻直播、音頻直播、視頻點(diǎn)播、音頻點(diǎn)播等多種類型內(nèi)容添加在單一的內(nèi)容播放時(shí)間表(內(nèi)容播放列表)中的問(wèn)題,可以實(shí)現(xiàn)音、視頻內(nèi)容添加、編輯、刪除、復(fù)制、預(yù)覽、放大、縮小、圖像渲染等功能。每個(gè)內(nèi)容源10中儲(chǔ)存的播放內(nèi)容包括一類播放內(nèi)容的數(shù)據(jù)流(諸如視頻直播內(nèi)容、音頻直播內(nèi)容、視頻點(diǎn)播內(nèi)容、或音頻點(diǎn)播內(nèi)容等),以及內(nèi)容播放列表信息、用戶界面信息、內(nèi)容關(guān)聯(lián)信息、用戶收藏信息等。如圖I所示,內(nèi)容源10中包含內(nèi)容信息數(shù)據(jù)庫(kù)101,音頻直播內(nèi)容源102,視頻直播內(nèi)容源103,音頻點(diǎn)播內(nèi)容源104,和視頻點(diǎn)播內(nèi)容源105,還包括定制播放內(nèi)容數(shù)據(jù)庫(kù)106。內(nèi)容信息數(shù)據(jù)庫(kù)101儲(chǔ)存了內(nèi)容源102-105中各類播放內(nèi)容的信息。音頻直播內(nèi)容源102和視頻直播內(nèi)容源103中儲(chǔ)存的是直播內(nèi)容的Http數(shù)據(jù)流的地址。定制播放內(nèi)容數(shù)據(jù)庫(kù)106中儲(chǔ)存了用戶定制的內(nèi)容播放列表(后文將詳細(xì)說(shuō)明)。音視頻的點(diǎn)播內(nèi)容以常規(guī)的格式分別儲(chǔ)存在上述的內(nèi)容源104、105中。例如,音頻內(nèi)容的數(shù)據(jù)格式可以采用RealAudio、MP3、WMA、APE、FLAC以及AAC等。視頻內(nèi)容的數(shù)據(jù)格式可以采用AVI、nAVI、DV-AVI、MPEG、DivX、MOV、ASF、WMV, RMVB等。在本發(fā)明的實(shí)施方式中,存儲(chǔ)源文件后,將音頻內(nèi)容統(tǒng)一轉(zhuǎn)換為MP3格式,視頻內(nèi)容轉(zhuǎn)換為FLV格式后進(jìn)行存儲(chǔ)。本發(fā)明中要將對(duì)直播內(nèi)容的訪問(wèn)和對(duì)點(diǎn)播內(nèi)容的數(shù)據(jù)訪問(wèn)統(tǒng)一成URL的形式。直播類內(nèi)容設(shè)有開(kāi)始播放和結(jié)束播放的時(shí)間的屬性,點(diǎn)播類內(nèi)容雖然沒(méi)有開(kāi)始播放和結(jié)束播放的時(shí)間,但設(shè)有播放時(shí)長(zhǎng)屬性。點(diǎn)播類內(nèi)容的播出開(kāi)始時(shí)間可以由用戶自行設(shè)定。用戶可以在直播內(nèi)容的開(kāi)始播放時(shí)間和結(jié)束播放的時(shí)間之間設(shè)定自己想要收聽(tīng)/收看的直播內(nèi)容播放起止時(shí)間。將各類播放內(nèi)容按開(kāi)始播出時(shí)間的順序排列的數(shù)據(jù)組合形成內(nèi)容播放列表。通常,用戶在自己定制的內(nèi)容播放系統(tǒng)中進(jìn)行各種數(shù)據(jù)維護(hù)(例如創(chuàng)建和修改內(nèi)容播放列表、訪問(wèn)他人收藏的內(nèi)容播放列表等)時(shí),需要登錄多個(gè)內(nèi)容源進(jìn)行數(shù)據(jù)訪問(wèn)。單點(diǎn)登錄是指登錄一個(gè)內(nèi)容源即可訪問(wèn)所有擁有相同用戶集的其他內(nèi)容源,在訪問(wèn)其他內(nèi)容源時(shí)無(wú)需二次登錄。根據(jù)本發(fā)明的一種實(shí)施方式,設(shè)立單點(diǎn)登錄接口單元(SSO) 20,用于驗(yàn)證用戶登錄信息和維護(hù)登錄狀態(tài)。該驗(yàn)證可以采用常規(guī)的“用戶名+密碼”的方式進(jìn)行。當(dāng)用戶查詢某個(gè)屬于內(nèi)容源A的內(nèi)容而首次登錄訪問(wèn)內(nèi)容源A時(shí),內(nèi)容源A的訪問(wèn)控制單元判斷用戶是否為登錄狀態(tài),如果不是,則將瀏覽器重定向到SSO 20。用戶在SSO 20通過(guò)瀏覽器顯示的登錄頁(yè)面提交用戶名和密碼,SSO 20進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后將用戶登錄狀態(tài)寫入Cookie中,并產(chǎn)生一個(gè)Ticket (票據(jù),為一個(gè)經(jīng)過(guò)加密的字符串,如GT-1984-vmbffkAdvfIeIKfffS5YHHNu31jpdBCZTZVForbc),同時(shí)將呈現(xiàn)給用戶的瀏覽器重定向至內(nèi)容源A。即當(dāng)瀏覽器訪問(wèn)服務(wù)器時(shí),服務(wù)器返回302狀態(tài)碼和重定向的目標(biāo)URL(統(tǒng)一資源定位符)。瀏覽器識(shí)別302狀態(tài)碼后,根據(jù)重定向目標(biāo)URL發(fā)起另一個(gè)請(qǐng)求,完成重定向。、此時(shí)內(nèi)容源A的訪問(wèn)控制單元提取該Ticket,向SSO 20發(fā)起http請(qǐng)求,驗(yàn)證Ticket是否有效,如果有效則確認(rèn)用戶身份為登錄狀態(tài)。同樣,當(dāng)用戶訪問(wèn)內(nèi)容源B時(shí),內(nèi)容源B將瀏覽器重定向到SSO 20,SSO 20驗(yàn)證用戶登錄狀態(tài)的Cookie是否有效,如果有效,產(chǎn)生另一個(gè)Ticket,并將瀏覽器重定向到內(nèi)容源B。內(nèi)容源B的訪問(wèn)控制單元提取該Ticket,向SSO 20發(fā)起http請(qǐng)求,驗(yàn)證Ticket的有效性,完成對(duì)用戶身份的驗(yàn)證。為實(shí)現(xiàn)上述操作,各內(nèi)容源從SSO 20獲得用戶身份后需要將身份信息存儲(chǔ)在當(dāng)前內(nèi)容源中(如cession中),以備隨時(shí)使用。后臺(tái)應(yīng)用單元30采用Java語(yǔ)言實(shí)現(xiàn)。通過(guò)該單元可以實(shí)現(xiàn)多個(gè)應(yīng)用系統(tǒng)。例如內(nèi)容播放列表系統(tǒng),儲(chǔ)存音頻和視頻的內(nèi)容播放列表。這些內(nèi)容播放列表中每一個(gè)內(nèi)容都具有特定的屬性,例如播放屬性直播視頻,直播音頻,點(diǎn)播視頻,點(diǎn)播音頻;分類屬性音樂(lè)、娛樂(lè)、新聞、健康、戲曲、旅游、美食等;內(nèi)容源屬性如XX音樂(lè)臺(tái)、XX教育臺(tái)、XX交通臺(tái)、XX體育臺(tái)等;時(shí)段屬性即播放內(nèi)容的開(kāi)始時(shí)間和結(jié)束時(shí)間;名稱屬性即播放內(nèi)容的名稱。后臺(tái)應(yīng)用單元30可提供對(duì)各類內(nèi)容選擇的后臺(tái)支持。對(duì)內(nèi)容的選擇條件可以包括上述的各類屬性。另外,還可以設(shè)置文本輸入框,接收用戶根據(jù)自己感興趣的內(nèi)容(包括上述的各種屬性的名稱)輸入的文字選擇。例如用戶選擇音頻點(diǎn)播,后臺(tái)應(yīng)用單元30就可以提供按音頻點(diǎn)播條件查詢出的音頻文件列表。如果用戶選擇音頻直播,后臺(tái)應(yīng)用單元30就可以提供按音頻直播條件查詢出的音頻文件列表。當(dāng)用戶選擇這些屬性或手動(dòng)輸入感興趣的內(nèi)容名稱或?qū)傩院?,后臺(tái)應(yīng)用單元30的數(shù)據(jù)訪問(wèn)單元301響應(yīng)瀏覽器請(qǐng)求,根據(jù)用戶輸入的查詢條件組織SQL查詢語(yǔ)句,從內(nèi)容數(shù)據(jù)庫(kù)中讀取相應(yīng)的關(guān)于播放內(nèi)容信息的數(shù)據(jù),并對(duì)該數(shù)據(jù)進(jìn)行必要封裝。對(duì)播放內(nèi)容信息數(shù)據(jù)的封裝包括對(duì)原始數(shù)據(jù)進(jìn)行必要的刪除和轉(zhuǎn)換。例如,為了保持不同類型內(nèi)容的數(shù)據(jù)格式的統(tǒng)一,將點(diǎn)播內(nèi)容的播放時(shí)長(zhǎng)轉(zhuǎn)換為開(kāi)始時(shí)間和播放時(shí)間,以與直播內(nèi)容統(tǒng)一。為此,要?jiǎng)h除該點(diǎn)播內(nèi)容的播放時(shí)長(zhǎng),將時(shí)長(zhǎng)轉(zhuǎn)換成播放的開(kāi)始時(shí)間和結(jié)束時(shí)間(開(kāi)始時(shí)間默認(rèn)為00:00,結(jié)束時(shí)間為開(kāi)始時(shí)間加上內(nèi)容時(shí)長(zhǎng)后的時(shí)間)。后臺(tái)應(yīng)用單元30通過(guò)提供語(yǔ)言無(wú)關(guān)接口(例如常規(guī)的JSON數(shù)據(jù)接口)來(lái)供瀏覽器調(diào)用。以下是JSON數(shù)據(jù)接口的代碼段示例
//返回給客戶端瀏覽器的數(shù)據(jù)對(duì)象 protected ActionStatus as = new ActionStatus();
protected void writeToResponse( HttpServletResponse response, Stringjson)throws IOException {
String statusJson = null; try{
Il將數(shù)據(jù)對(duì)象序列化成JSON格式的字符串,如{’name':’Test’} status Json = JSONUtil.serialize(as);
} catch(JSONException e){
LOG.wam(e.getMessage(), e);
} Il獲取回調(diào)接口信息,用于支持跨域Ajax調(diào)用 String callbackParameter = getCallbackParameter();
String callbackName = null;
if ((callbackParameter != null) && (callbackParameter.length() > 0)) { callbackName = request.getParameter(callbackParameter);
}
StringBuffer buf = new StringBuffer();
if ((callbackName != null) && (callbackName.length() > 0)) {
Il包裝Ajax回調(diào)接口
json = json.substring(callbackName.length() +1, json.length() - I);
buf. append(callbackN ame). append("( {") .append("\"status\":").append(statusJson)
.append(",\"data\": ").append(j son).append("})");
}else{
buf.append("{").append("\"status\":").append(statusJson)
.append(" ,\"data\"append(j son). append("}");
}
//將字符串?dāng)?shù)據(jù)返回給客戶端瀏覽器
super.writeToResponse(response, buf.toString(), true);
}后臺(tái)應(yīng)用單元30可以包含多個(gè)單元以支持用戶根據(jù)各種條件對(duì)內(nèi)容的選擇。例如收藏?cái)?shù)據(jù)單元302 :單元302支持提供用戶查詢其他用戶收藏的內(nèi)容和內(nèi)容列表數(shù)據(jù)的功能。當(dāng)用戶選擇“其他用戶收藏”的條件時(shí),收藏?cái)?shù)據(jù)單元302根據(jù)用戶選擇查詢到其它用戶收藏的內(nèi)容信息數(shù)據(jù),并與收藏內(nèi)容數(shù)據(jù)庫(kù)中的 數(shù)據(jù)進(jìn)行比對(duì),刪除無(wú)效的內(nèi)容信息數(shù)據(jù)(如已被刪除的音頻點(diǎn)播數(shù)據(jù))。然后將查詢得到的關(guān)于該收藏的內(nèi)容信息數(shù)據(jù)提供給瀏覽器,以呈現(xiàn)給用戶。內(nèi)容關(guān)聯(lián)性分析單元303:用戶在瀏覽器中選擇一個(gè)內(nèi)容名稱以進(jìn)行添加操作時(shí),瀏覽器會(huì)同步發(fā)起Ajax請(qǐng)求來(lái)響應(yīng)該用戶的操作。例如
//加載與選中內(nèi)容相關(guān)的內(nèi)容信息列表 Il url:加載內(nèi)容的url,
Il params:選中內(nèi)容信息,用于查詢相關(guān)內(nèi)容function loadRelated(url, params) {
Il發(fā)起Aj ax請(qǐng)求
$.getJSON(url, params, function(json){
//回調(diào)函數(shù),將查詢到的相關(guān)內(nèi)容數(shù)據(jù)渲染到頁(yè)面中 $. each(j son. data, function(p) {
Il逐個(gè)顯示相關(guān)內(nèi)容名稱
$('#dataGrid').append('<span>' + p.name + '</span>');
}); });
}內(nèi)容關(guān)聯(lián)性分析單元303對(duì)內(nèi)容信息的數(shù)據(jù)進(jìn)行分析,并找出與該內(nèi)容信息的內(nèi)容分類屬性(音樂(lè)、體育、交通…等)或其它屬性相同的內(nèi)容資源的信息(名稱)返回給瀏
JaLzHFT O播放列表過(guò)濾單元304 :當(dāng)用戶在列出的多個(gè)播放內(nèi)容列表中進(jìn)行選擇時(shí),單元304對(duì)這些播放內(nèi)容列表進(jìn)行過(guò)濾、分析,例如刪除沒(méi)有播放內(nèi)容的空列表等,然后將過(guò)濾后留下的有效內(nèi)容播放列表的信息傳送至瀏覽器,以呈現(xiàn)給用戶。
內(nèi)容過(guò)濾單元305:對(duì)根據(jù)用戶查詢條件所查詢出的音視頻內(nèi)容進(jìn)行過(guò)濾,刪除無(wú)效的內(nèi)容(如已被后臺(tái)管理員做刪除標(biāo)記的回放內(nèi)容)。瀏覽器單元40支持為用戶提供操作界面和顯示播放內(nèi)容定制結(jié)果的瀏覽器。完成音視頻內(nèi)容的添加、編輯、刪除、復(fù)制、預(yù)覽、放大、縮小、圖像渲染等功能,該單元采用JavaScript、CSS (級(jí)聯(lián)樣式表)、HTML 實(shí)現(xiàn)。瀏覽器單元40包括內(nèi)容分類單元401,根據(jù)添加內(nèi)容的屬性判斷該內(nèi)容屬于直播類還是點(diǎn)播類,并重新封裝內(nèi)容數(shù)據(jù),供時(shí)間軸使用。播放列表維護(hù)單元402,利用瀏覽器的常規(guī)手段,將內(nèi)容播放列表數(shù)據(jù)渲染,并繪制到時(shí)間軸上。包括對(duì)內(nèi)容時(shí)間框、當(dāng)前內(nèi)容蒙版層、動(dòng)態(tài)提示框、內(nèi)容時(shí)間跨度軸的繪制,和文本截?cái)?、時(shí)間軸放大、縮小等。 具體而言,通過(guò)Javascript的常規(guī)技術(shù)操作瀏覽器中D0M(Document ObjectModel :文檔對(duì)象模型)節(jié)點(diǎn)和CSS (Cascading Style Sheets :層疊樣式表),可以修改瀏覽器顯示內(nèi)容的布局和樣式,甚至內(nèi)容本身。由此可以完成在頁(yè)面上添加蒙版層、彈出提示框、縮放時(shí)間軸等工作。例如,對(duì)于縮放時(shí)間軸而言,縮放的本質(zhì)就是修改內(nèi)容視圖顯示的寬度和高度。通過(guò)計(jì)算內(nèi)容視圖原來(lái)的寬度和高度,并在此基礎(chǔ)上將寬度和高度乘以一個(gè)縮放比例(如3倍),計(jì)算出縮放后的寬度和高度,然后修改DOM節(jié)點(diǎn)的CSS屬性。瀏覽器發(fā)現(xiàn)CSS屬性發(fā)生變化后,會(huì)自動(dòng)按新的CSS屬性渲染DOM節(jié)點(diǎn)(即繪制內(nèi)容的顯示畫(huà)面),從而實(shí)現(xiàn)時(shí)間軸的縮放。視圖渲染單元403 :根據(jù)當(dāng)前內(nèi)容播放列表模型中的內(nèi)容數(shù)據(jù),計(jì)算內(nèi)容視圖的坐標(biāo)位置和寬度,設(shè)置內(nèi)容視圖的CSS樣式。瀏覽器渲染時(shí)間軸上的內(nèi)容視圖的顯示,以及繪制時(shí)間軸刻度,內(nèi)容蒙版層和各種鼠標(biāo)懸停效果(如鼠標(biāo)懸停于內(nèi)容視圖上時(shí)彈出界面信息提示)。事件監(jiān)聽(tīng)響應(yīng)單元404 :負(fù)責(zé)檢測(cè)用戶在時(shí)間軸上以及周邊區(qū)域產(chǎn)生的DOM事件,并根據(jù)事件類型不同交由相關(guān)功能響應(yīng)。包括監(jiān)聽(tīng)、響應(yīng)鼠標(biāo)移動(dòng)、鼠標(biāo)點(diǎn)擊等事件。本發(fā)明中,在瀏覽器常規(guī)的默認(rèn)監(jiān)聽(tīng)處理之外增加了特定的處理函數(shù),來(lái)完成對(duì)不同事件的處
理邏輯。所實(shí)現(xiàn)的特殊事件包括拖動(dòng)內(nèi)容視圖左邊框事件,在瀏覽器的默認(rèn)事件監(jiān)聽(tīng)上增加了特定的處理函數(shù),通過(guò)該處理函數(shù)來(lái)調(diào)整內(nèi)容視圖的左邊框的位置、內(nèi)容的開(kāi)始播出時(shí)間以及時(shí)間跨度線。拖動(dòng)內(nèi)容視圖右邊框事件,在瀏覽器的默認(rèn)事件監(jiān)聽(tīng)上增加了特定的處理函數(shù),通過(guò)該處理函數(shù)來(lái)調(diào)整內(nèi)容視圖的右邊框的位置、內(nèi)容的開(kāi)始播出時(shí)間以及時(shí)間跨度線。一個(gè)處理函數(shù)示例如下onMaskLeftMove: function(e) {
if(ctx.curItem.isLive()) {
$(document).bind( {
’mousedown.drag’: ctx.observer.onMouseDown, 'mousemove.drag': ctx.observer.onLeftMove, 'mouseup.drag': ctx.observer.onLeftUp
});
}else{
$(ctx).trigger(Playlist.Event.TimePrompt, ctx.curltem);
e.stopPropagation();
return false;
}
}上述函數(shù)中,首先使用語(yǔ)句“ctx. curltem. isLive () ”判斷播放內(nèi)容是否為直播類。如果是直播類內(nèi)容,則為頁(yè)面文檔添加鼠標(biāo)按下(mousedown, drag)、鼠標(biāo)移動(dòng)(mousemove. drag)和鼠標(biāo)釋放(mouseup, drag)三個(gè)事件監(jiān)聽(tīng)器,這三個(gè)事件監(jiān)聽(tīng)器將用于處理用戶調(diào)整內(nèi)容的播出時(shí)間時(shí)產(chǎn)生的事件。如果是點(diǎn)播類內(nèi)容,則彈出調(diào)整內(nèi)容播出時(shí)間的對(duì)話框,用戶通過(guò)該對(duì)話框可以調(diào)整內(nèi)容的實(shí)際播出時(shí)間。需要說(shuō)明,有很多事件都屬于鼠標(biāo)點(diǎn)擊事件,只是點(diǎn)擊位置不同對(duì)應(yīng)的處理邏輯不同。這類點(diǎn)擊事件都是采用常規(guī)的處理手段。例如點(diǎn)擊播放內(nèi)容的事件,引起為該內(nèi)容視圖產(chǎn)生蒙版層的操作,在瀏覽器上表現(xiàn)為內(nèi)容視圖框變?yōu)榧t色,并顯示刪除按鈕。播放列表輸出單元405,封裝內(nèi)容播放列表數(shù)據(jù),根據(jù)封裝的數(shù)據(jù),生成按開(kāi)始時(shí)間先后順序排列的定制內(nèi)容播放列表,供用戶預(yù)覽。由此可以實(shí)現(xiàn)定制內(nèi)容播放列表的實(shí)時(shí)預(yù)覽,單/多天保存等。而且用戶可在預(yù)覽界面對(duì)定制的內(nèi)容進(jìn)行刪除操作。用戶定制的內(nèi)容播放列表存儲(chǔ)在定制播放內(nèi)容數(shù)據(jù)庫(kù)106中。一種內(nèi)容播放列表的后臺(tái)格式如下內(nèi)容播放列表示例
權(quán)利要求
1.定制網(wǎng)絡(luò)播放內(nèi)容的方法,包括 1)建立與多個(gè)不同播放內(nèi)容源的統(tǒng)一接口, 2)根據(jù)用戶對(duì)播放內(nèi)容的選擇,通過(guò)所述統(tǒng)一接口從所述不同的播放內(nèi)容源獲取播放內(nèi)容的信息, 3)根據(jù)所獲取的播放內(nèi)容的信息,確定所述播放內(nèi)容在內(nèi)容播放列表中的位置,以形成用戶定制的內(nèi)容播放列表。
2.根據(jù)權(quán)利要求I所述的方法,其中所述播放內(nèi)容的類型包括直播視頻、直播音頻、點(diǎn)播視頻、點(diǎn)播音頻。
3.根據(jù)權(quán)利要求2所述的方法,還包括,根據(jù)用戶定制的內(nèi)容播放列表,由單個(gè)網(wǎng)頁(yè)播放器通過(guò)所述統(tǒng)一接口調(diào)用相應(yīng)內(nèi)容源中的內(nèi)容進(jìn)行播放。
4.根據(jù)權(quán)利要求3所述的方法,還包括,生成時(shí)間軸,根據(jù)所述播放內(nèi)容的時(shí)間屬性,確定播放內(nèi)容視圖在時(shí)間軸上的坐標(biāo)位置和寬度,將所述內(nèi)容播放列表添加至所述時(shí)間軸。
5.根據(jù)權(quán)利要求4所述的方法,其中將所述內(nèi)容播放列表添加至?xí)r間軸的步驟包括將所述播放內(nèi)容信息數(shù)據(jù)封裝成統(tǒng)一的播放內(nèi)容信息格式。
6.根據(jù)權(quán)利要求3所述的方法,還包括通過(guò)所述單個(gè)網(wǎng)頁(yè)播放器為用戶提供播放內(nèi)容的選擇條件,包括電臺(tái)頻道、內(nèi)容類型、播放時(shí)段、內(nèi)容名稱。
7.根據(jù)權(quán)利要求2所述的方法,還包括當(dāng)用戶選擇直播音頻或直播視頻內(nèi)容時(shí),禁止用戶設(shè)置所述直播音頻或直播視頻內(nèi)容的播放時(shí)間早于所述直播內(nèi)容的開(kāi)始時(shí)間。
8.根據(jù)權(quán)利要求4所述的方法,還包括 對(duì)所述內(nèi)容播放列表中已有的播放內(nèi)容的數(shù)據(jù)模型進(jìn)行線性遍歷,計(jì)算出空余時(shí)間段,和 對(duì)于點(diǎn)播內(nèi)容,向用戶呈現(xiàn)時(shí)間選擇對(duì)話框,由用戶選擇要添加到時(shí)間軸的播放內(nèi)容時(shí)間段。
9.根據(jù)權(quán)利要求8所述的方法,還包括 用戶確定播放內(nèi)容的播出時(shí)間后,根據(jù)內(nèi)容開(kāi)始時(shí)間確定該播放內(nèi)容視圖在時(shí)間軸中的位置。
10.根據(jù)權(quán)利要求4所述的方法,其中,在將所述播放內(nèi)容添加至內(nèi)容播放列表之前,確定要添加的播放內(nèi)容是否與已有內(nèi)容存在播放時(shí)間的沖突。
11.根據(jù)權(quán)利要求10所述的方法,其中,所述播放內(nèi)容的播出時(shí)間的沖突情況包括 完全相同新添加播放內(nèi)容的開(kāi)始、結(jié)束時(shí)間與時(shí)間軸上已存在的播放內(nèi)容的開(kāi)始、結(jié)束時(shí)間完全相同, 全覆蓋新添加播放內(nèi)容的開(kāi)始時(shí)間與時(shí)間軸上已存在的播放內(nèi)容的開(kāi)始時(shí)間相同,結(jié)束時(shí)間遲于已存在的播放內(nèi)容的結(jié)束時(shí)間, 前覆蓋新添加播放內(nèi)容的開(kāi)始時(shí)間早于時(shí)間軸上已存在的播放內(nèi)容的開(kāi)始時(shí)間,結(jié)束時(shí)間介于已存在的播放內(nèi)容的開(kāi)始時(shí)間和結(jié)束時(shí)間之間; 后覆蓋新添加播放內(nèi)容的開(kāi)始時(shí)間介于已存在的播放內(nèi)容的開(kāi)始時(shí)間和結(jié)束時(shí)間之間; 無(wú)沖突新添加播放內(nèi)容的結(jié)束時(shí)間早于已存在的播放內(nèi)容的開(kāi)始時(shí)間。
12.根據(jù)權(quán)利要求11所述的方法,還包括按以下方式執(zhí)行沖突處理 完全相同和全覆蓋刪除現(xiàn)有內(nèi)容; 前覆蓋修正現(xiàn)有內(nèi)容的開(kāi)始時(shí)間為新內(nèi)容的結(jié)束時(shí)間; 后覆蓋修正現(xiàn)有內(nèi)容的結(jié)束時(shí)間為新內(nèi)容的開(kāi)始時(shí)間。
13.根據(jù)權(quán)利要求12所述的方法,其中將播放內(nèi)容視圖添加至?xí)r間軸的步驟包括 通過(guò)播放內(nèi)容的開(kāi)始時(shí)間計(jì)算內(nèi)容視圖左側(cè)在時(shí)間軸中的相對(duì)位置, 根據(jù)內(nèi)容時(shí)長(zhǎng)確定該內(nèi)容視圖在時(shí)間軸上的寬度,和 在時(shí)間軸上顯示所述播放內(nèi)容的視圖。
14.根據(jù)權(quán)利要求1-13任一項(xiàng)所述的方法,其中通過(guò)所述統(tǒng)一接口從所述不同的播放內(nèi)容源獲取播放內(nèi)容的信息包括 設(shè)置單點(diǎn)登錄接口,用于驗(yàn)證用戶登錄信息和維護(hù)登錄狀態(tài), 所述單點(diǎn)登錄接口提供登錄頁(yè)面由用戶登錄, 用戶對(duì)所述單點(diǎn)登錄接口的登錄通過(guò)驗(yàn)證后,被訪問(wèn)的內(nèi)容源根據(jù)與單點(diǎn)登錄接口的交互結(jié)果,允許對(duì)該內(nèi)容源的內(nèi)容進(jìn)行訪問(wèn)。
15.根據(jù)權(quán)利要求14所述的方法,還包括根據(jù)用戶定制的內(nèi)容播放列表,由單個(gè)網(wǎng)頁(yè)播放器通過(guò)所述統(tǒng)一接口調(diào)用相應(yīng)內(nèi)容源中的內(nèi)容進(jìn)行播放。
16.定制網(wǎng)絡(luò)播放內(nèi)容的裝置,包括 1)單點(diǎn)登錄接口單元,建立與多個(gè)不同播放內(nèi)容源的統(tǒng)一接口, 2)數(shù)據(jù)訪問(wèn)單元,根據(jù)用戶對(duì)播放內(nèi)容的選擇,通過(guò)所述統(tǒng)一接口從所述不同的播放內(nèi)容源獲取內(nèi)容信息, 3)播放列表生成單元,根據(jù)所獲取的內(nèi)容信息,確定所述播放內(nèi)容在內(nèi)容播放列表中的位置,生成用戶定制的內(nèi)容播放列表。
17.根據(jù)權(quán)利要求16所述的裝置,其中所述播放內(nèi)容源包括直播視頻內(nèi)容源,直播音頻內(nèi)容源,點(diǎn)播視頻內(nèi)容源,以及點(diǎn)播音頻內(nèi)容源。
18.根據(jù)權(quán)利要求17所述的裝置,還包括網(wǎng)頁(yè)播放器單元,根據(jù)所述內(nèi)容播放列表,通過(guò)所述統(tǒng)一接口調(diào)用內(nèi)容源中的內(nèi)容進(jìn)行播放。
19.根據(jù)權(quán)利要求17所述的裝置,還包括 視圖渲染單元,根據(jù)所述播放內(nèi)容的時(shí)間屬性,計(jì)算播放內(nèi)容視圖在時(shí)間軸上的坐標(biāo)位置和寬度,將所述內(nèi)容播放列表添加至所述時(shí)間軸。
20.根據(jù)權(quán)利要求19所述的裝置,還包括瀏覽器單元,生成按播放內(nèi)容開(kāi)始時(shí)間先后順序排列的播放內(nèi)容視圖,呈現(xiàn)給用戶。
21.根據(jù)權(quán)利要求20所述的裝置,所述瀏覽器單元為用戶提供播放內(nèi)容的選擇條件,所述選擇條件包括電臺(tái)頻道、內(nèi)容類型、播放時(shí)段、內(nèi)容名稱。
22.根據(jù)權(quán)利要求20所述的裝置,所述瀏覽器單元包括播放列表維護(hù)單元,對(duì)當(dāng)前播放內(nèi)容的時(shí)間段進(jìn)行線性遍歷,確定空余時(shí)間段,并向用戶呈現(xiàn)時(shí)間選擇對(duì)話框,由用戶選擇要添加的點(diǎn)播內(nèi)容時(shí)間段,或由用戶自定義內(nèi)容的播放時(shí)間段。
23.根據(jù)權(quán)利要求21所述的裝置,其中所述播放列表維護(hù)單元在用戶確定播放內(nèi)容的播出時(shí)間后,根據(jù)播放內(nèi)容的開(kāi)始時(shí)間,查找該播放內(nèi)容在含有播放內(nèi)容視圖的時(shí)間軸中的位置,和/或所述播放列表維護(hù)單元將所述播放內(nèi)容添加到時(shí)間軸前,采用線性遍歷方法,確定要添加的播放內(nèi)容的播出時(shí)間是否與已有的內(nèi)容播出時(shí)間存在沖突。
24.根據(jù)權(quán)利要求20所述的裝置,所述瀏覽器單元還包括事件監(jiān)聽(tīng)響應(yīng)單元,提供位于時(shí)間軸左右兩側(cè)的“左移”、“右移”按鈕,當(dāng)用戶點(diǎn)擊所述按鈕時(shí),計(jì)算每次移動(dòng)的位移量,重新繪制時(shí)間軸的圖像。
25.根據(jù)權(quán)利要求17-24任一項(xiàng)所述的裝置,還包括數(shù)據(jù)訪問(wèn)單元,從所述不同的播放內(nèi)容源獲取內(nèi)容信息,提取出所述內(nèi)容信息中的通用屬性,形成統(tǒng)一格式的內(nèi)容信息。
全文摘要
本發(fā)明提供了一種定制網(wǎng)絡(luò)播放內(nèi)容的方法,包括建立與多個(gè)不同播放內(nèi)容源的統(tǒng)一接口;根據(jù)用戶對(duì)播放內(nèi)容的選擇,通過(guò)所述統(tǒng)一接口從所述不同的播放內(nèi)容源獲取播放內(nèi)容的信息;根據(jù)所獲取的播放內(nèi)容的信息,確定所述播放內(nèi)容在內(nèi)容播放列表中的位置,以形成用戶定制的內(nèi)容播放列表。本發(fā)明還提供了一種定制網(wǎng)絡(luò)播放內(nèi)容的裝置。根據(jù)本發(fā)明,可以實(shí)現(xiàn)在同一內(nèi)容播放列表中將來(lái)自不同資源的內(nèi)容信息進(jìn)行混編,從而使用戶能夠自己定制混合播放各種類型內(nèi)容的網(wǎng)絡(luò)電臺(tái)。
文檔編號(hào)H04N21/458GK102665129SQ20121012974
公開(kāi)日2012年9月12日 申請(qǐng)日期2012年4月27日 優(yōu)先權(quán)日2012年4月27日
發(fā)明者嚴(yán)玉鵬, 常青, 李曉暉, 楊立峰, 汪良, 焦楠, 王二東, 王秋, 蔡明可, 邊江, 鐘華棟 申請(qǐng)人:北京人民廣播電臺(tái)