其它各媒體流的播放時(shí)間,如此,有效地提高媒體在多設(shè)備上協(xié)同播放的精度,提升用戶(hù)體驗(yàn)。
[0056]另外,由于是將媒體文件的多個(gè)媒體流分別傳輸至對(duì)應(yīng)的播放設(shè)備,如此,能有效地節(jié)約網(wǎng)絡(luò)資源。
【附圖說(shuō)明】
[0057]在附圖(其不一定是按比例繪制的)中,相似的附圖標(biāo)記可在不同的視圖中描述相似的部件。具有不同字母后綴的相似附圖標(biāo)記可表示相似部件的不同示例。附圖以示例而非限制的方式大體示出了本文中所討論的各個(gè)實(shí)施例。
[0058]圖1為本發(fā)明實(shí)施例一媒體在多設(shè)備上協(xié)同播放的方法流程示意圖;
[0059]圖2為本發(fā)明實(shí)施例二媒體在多設(shè)備上協(xié)同播放的裝置結(jié)構(gòu)示意圖;
[0060]圖3為本發(fā)明實(shí)施例三的架構(gòu)示意圖;
[0061]圖4為本發(fā)明實(shí)施例三媒體在多設(shè)備上協(xié)同播放的方法流程示意圖。
【具體實(shí)施方式】
[0062]下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)地描述。
[0063]在描述本申請(qǐng)的實(shí)施例之前,先介紹一下目前媒體在多個(gè)設(shè)備上協(xié)同播放所存在的問(wèn)題:
[0064]首先,協(xié)同播放的方法,一般是由用戶(hù)或者控制模塊簡(jiǎn)單指定一個(gè)參考媒體流,控制模塊獲取參考媒體流的播放時(shí)間并發(fā)送給其他媒體流,其他媒體流自我調(diào)整,使得與參考媒體流的播放時(shí)間一致。但是,由于參考媒體流的選擇策略過(guò)于簡(jiǎn)單,所以一旦參考媒體流的傳輸條件較差時(shí),會(huì)導(dǎo)致其他與參考媒體流同步的媒體流都會(huì)出現(xiàn)卡頓。
[0065]其次,其它媒體流的同步控制策略過(guò)于簡(jiǎn)單,可能會(huì)出現(xiàn)不能真正意義上的同步。
[0066]第三,媒體在多個(gè)設(shè)備上協(xié)同播放時(shí),一般需要將同一個(gè)或多個(gè)媒體文件同步到多個(gè)設(shè)備上,由于每個(gè)播放設(shè)備只需要播放媒體文件中的對(duì)應(yīng)媒體流,所以將整個(gè)媒體文件同步到多個(gè)設(shè)備上,會(huì)造成資源的浪費(fèi)。
[0067]在本發(fā)明的各種實(shí)施例中:將媒體文件的多個(gè)媒體流分別傳輸至對(duì)應(yīng)的播放設(shè)備;根據(jù)各媒體流的類(lèi)型,動(dòng)態(tài)確定參考媒體流;在各媒體流的播放過(guò)程中,根據(jù)確定的參考媒體流以及除參考媒體流外的其它各媒體流的類(lèi)型,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間。
[0068]實(shí)施例一
[0069]本實(shí)施例的媒體在多設(shè)備上協(xié)同播放的方法,如圖1所示,包括以下步驟:
[0070]步驟101:將媒體文件的多個(gè)媒體流分別傳輸至對(duì)應(yīng)的播放設(shè)備;
[0071]這里,所述媒體流可以視頻流、不同聲道的音頻流、或字幕流等。
[0072]在執(zhí)行本步驟之前,該方法還可以包括:
[0073]會(huì)話(huà)連接建立后,獲取各播放設(shè)備當(dāng)前的網(wǎng)絡(luò)時(shí)延;
[0074]根據(jù)所述網(wǎng)絡(luò)時(shí)延,確定各播放設(shè)備的基準(zhǔn)系統(tǒng)時(shí)間,以使各播放設(shè)備校準(zhǔn)自身的系統(tǒng)時(shí)間,由于各播放設(shè)備采用對(duì)應(yīng)的系統(tǒng)時(shí)間,如此,能進(jìn)一步提升同步的精度,提升用戶(hù)體驗(yàn)。
[0075]在執(zhí)行本步驟之前,該方法還可以包括:
[0076]將所述媒體文件解析為多個(gè)媒體流;
[0077]為解析的每個(gè)媒體流指定關(guān)聯(lián)的播放設(shè)備;
[0078]并將關(guān)聯(lián)的播放設(shè)備綁定為設(shè)備組,以便在媒體流的播放過(guò)程中更好地控制各播放設(shè)備。
[0079]其中,事先已獲知已與哪些播放設(shè)備建立了會(huì)話(huà)連接,從而再根據(jù)需要指定每個(gè)媒體流所關(guān)聯(lián)的播放設(shè)備。
[0080]步驟102:根據(jù)各媒體流的類(lèi)型,動(dòng)態(tài)確定參考媒體流;
[0081]這里,所述根據(jù)各媒體流的類(lèi)型,動(dòng)態(tài)確定參考媒體流,具體包括:
[0082]當(dāng)各媒體流中有一個(gè)音頻流時(shí),將所述音頻流作為參考流媒體;或者,
[0083]當(dāng)各媒體流中有兩個(gè)以上音頻流時(shí),根據(jù)所述兩個(gè)以上音頻流的傳輸速率,確定所述兩個(gè)以上音頻流中的一個(gè)音頻流為參考流媒體;或者,
[0084]當(dāng)各媒體流中未有音頻流時(shí),根據(jù)各媒體流的傳輸速率,確定各媒體流中的一個(gè)媒體流為參考流媒體。
[0085]其中,由于音頻的跳躍播放可能導(dǎo)致尖銳刺耳的聲音,因此,當(dāng)各媒體流中有音頻流時(shí),要首先選擇音頻流作為參考媒體流。
[0086]所述根據(jù)所述兩個(gè)以上音頻流的傳輸速率,確定所述兩個(gè)以上音頻流中的一個(gè)音頻流為參考流媒體,具體包括:
[0087]定時(shí)獲取所述兩個(gè)以上音頻流中各音頻流的傳輸速率;
[0088]當(dāng)未設(shè)置參考媒體流時(shí),將所述兩個(gè)以上音頻流中傳輸速率最高的音頻流作為參考媒體流;
[0089]當(dāng)設(shè)置有參考媒體流時(shí),將所述兩個(gè)以上音頻流中除設(shè)置的參考媒體流外的其它各音頻流傳輸速率中的最高傳輸速率與所述設(shè)置的參考媒體流的傳輸速率進(jìn)行對(duì)比,若差值未超過(guò)設(shè)置的閾值,則維持現(xiàn)有的參考媒體流不變;若差值超過(guò)設(shè)置的閾值,則選擇所述其它各音頻流中傳輸速率最高的音頻流作為參考媒體流。
[0090]其中,定時(shí)的周期長(zhǎng)度可以根據(jù)網(wǎng)絡(luò)實(shí)際情況設(shè)置;可以根據(jù)網(wǎng)絡(luò)實(shí)際情況設(shè)置閾值。
[0091]所述根據(jù)各媒體流的傳輸速率,確定各媒體流中的一個(gè)媒體流為參考流媒體,具體包括:
[0092]定時(shí)獲取各媒體流的傳輸速率;
[0093]當(dāng)未設(shè)置參考媒體流時(shí),將各媒體流中傳輸速率最高的媒體流作為參考媒體流;
[0094]當(dāng)設(shè)置有參考媒體流時(shí),將所述各媒體流中除設(shè)置的參考媒體流外的其它各媒體流傳輸速率中的最高傳輸速率與所述設(shè)置的參考媒體流的傳輸速率進(jìn)行對(duì)比,若差值未超過(guò)設(shè)置的閾值,則維持現(xiàn)有的參考媒體流不變;若差值超過(guò)設(shè)置的閾值,則選擇所述其它各媒體流中傳輸速率最高的媒體流作為參考媒體流。
[0095]其中,定時(shí)的周期長(zhǎng)度可以根據(jù)網(wǎng)絡(luò)實(shí)際情況設(shè)置;同時(shí),可以根據(jù)網(wǎng)絡(luò)實(shí)際情況設(shè)置閾值。
[0096]步驟103:在各媒體流的播放過(guò)程中,根據(jù)確定的參考媒體流以及除參考媒體流外的其它各媒體流的類(lèi)型,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間。
[0097]具體地,定時(shí)獲取各媒體流當(dāng)前的相對(duì)播放時(shí)間;所述相對(duì)播放時(shí)間為相對(duì)于播放起始位置的時(shí)間;
[0098]將所述其它各媒體流的相對(duì)播放時(shí)間減去參考媒體流的相對(duì)播放時(shí)間,得到同步誤差時(shí)間;
[0099]根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間。
[0100]當(dāng)所述其它各媒體流中包含視頻流時(shí),所述根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間,具體包括:
[0101]當(dāng)視頻流對(duì)應(yīng)的同步誤差時(shí)間大于第一值且小于等于第二值時(shí),控制相應(yīng)的播放設(shè)備視頻流播放完當(dāng)前幀后,將視頻流停留所述對(duì)應(yīng)的同步誤差時(shí)間后再播放下一幀;當(dāng)視頻流對(duì)應(yīng)的同步誤差時(shí)間大于所述第二值且小于等于所述第三值時(shí),控制相應(yīng)的播放設(shè)備重復(fù)播放視頻流的當(dāng)前幀直至下一次獲取傳輸速率;當(dāng)視頻流對(duì)應(yīng)的同步誤差時(shí)間大于所述第三值時(shí),控制相應(yīng)的播放設(shè)備將視頻流跳回到獲取的參考媒體流的相對(duì)播放時(shí)間進(jìn)行播放;所述第一值小于所述第二值;所述第二值小于所述第三值。
[0102]其中,由于人的眼睛對(duì)圖像有暫留時(shí)間效應(yīng)(即圖片消失后在人的大腦中會(huì)暫留100-400ms),因此,可以設(shè)置所述第一值為0,所述第二值為250ms,所述第三值為3000ms。
[0103]當(dāng)所述其它各媒體流中包含音頻流時(shí),所述根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間,具體包括:
[0104]當(dāng)音頻流對(duì)應(yīng)的同步誤差時(shí)間小于第四值或大于第五值時(shí),控制相應(yīng)的播放設(shè)備將音頻流跳回到獲取的參考媒體流的相對(duì)播放時(shí)間進(jìn)行播放;同時(shí),對(duì)調(diào)整前后的聲音之間進(jìn)行插值,以避免產(chǎn)生尖銳的雜音;所述第四值小于所述第五值。
[0105]其中,由于人耳分辨出前后兩個(gè)聲音的條件是前后兩個(gè)聲音到達(dá)人耳相差0.1s以上,因此,當(dāng)音頻流對(duì)應(yīng)的同步誤差時(shí)間大于等于-1OOms且小于等于10ms時(shí),認(rèn)為不同音頻流的聲音是同步的,因此,可以設(shè)置所述第四值為-100ms,設(shè)置所述第五值為100ms。
[0106]所述進(jìn)行插值是指:對(duì)調(diào)整前后的聲音數(shù)據(jù)之間插入平滑過(guò)渡的值,使音頻流平滑播放。
[0107]當(dāng)所述其它各媒體流中包含字幕流時(shí),所述根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間,具體包括:
[0108]當(dāng)參字幕流對(duì)應(yīng)的同步誤差時(shí)間在第六值至第七值范圍內(nèi)時(shí),認(rèn)為與其它媒體流的播放是同步的,無(wú)需當(dāng)前調(diào)整;當(dāng)字幕流對(duì)應(yīng)的同步誤差時(shí)間不在第六值至第七值范圍內(nèi)時(shí),控制相應(yīng)的播放設(shè)備將字幕流調(diào)整到獲取的參考媒體流的相對(duì)播放時(shí)間進(jìn)行播放,即顯示參考媒體流的相對(duì)播放時(shí)