一種媒體在多設(shè)備上協(xié)同播放的方法、裝置及終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及媒體播放領(lǐng)域,尤其涉及一種媒體在多設(shè)備上協(xié)同播放的方法、裝置及終端。
【背景技術(shù)】
[0002]目前,媒體在多個(gè)設(shè)備上協(xié)同播放時(shí),一般需要將同一個(gè)或者多個(gè)媒體文件同步到多個(gè)設(shè)備上。
[0003]同時(shí),對(duì)于協(xié)同播放的方法,一般由用戶(hù)或者控制模塊簡(jiǎn)單指定一個(gè)參考媒體流,控制模塊獲取參考媒體流的播放時(shí)間并發(fā)送給其他媒體流,其他媒體流自我調(diào)整,使得與參考媒體流的播放時(shí)間一致。
[0004]上述技術(shù)方案存在一定缺陷:參考媒體流的選擇策略過(guò)于簡(jiǎn)單,一旦參考媒體流的傳輸條件較差,會(huì)導(dǎo)致其他與參考媒體流同步的媒體流都會(huì)出現(xiàn)卡頓;另外,其他媒體流的調(diào)整策略過(guò)于簡(jiǎn)單,可能會(huì)出現(xiàn)不能真正意義上的同步。
【發(fā)明內(nèi)容】
[0005]為解決現(xiàn)有存在的技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種媒體在多設(shè)備上協(xié)同播放的方法、裝置及終端。
[0006]本發(fā)明實(shí)施例提供了一種媒體在多設(shè)備上協(xié)同播放的方法,包括:
[0007]將媒體文件的多個(gè)媒體流分別傳輸至對(duì)應(yīng)的播放設(shè)備;
[0008]根據(jù)各媒體流的類(lèi)型,動(dòng)態(tài)確定參考媒體流;
[0009]在各媒體流的播放過(guò)程中,根據(jù)確定的參考媒體流以及除參考媒體流外的其它各媒體流的類(lèi)型,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間。
[0010]上述方案中,所述將媒體文件的多個(gè)媒體流分別傳輸至對(duì)應(yīng)的播放設(shè)備之前,所述方法還包括:
[0011]會(huì)話(huà)連接建立后,獲取各播放設(shè)備當(dāng)前的網(wǎng)絡(luò)時(shí)延;
[0012]根據(jù)所述網(wǎng)絡(luò)時(shí)延,確定各播放設(shè)備的基準(zhǔn)系統(tǒng)時(shí)間,以使各播放設(shè)備校準(zhǔn)自身的系統(tǒng)時(shí)間。
[0013]上述方案中,所述根據(jù)各媒體流的類(lèi)型,動(dòng)態(tài)確定參考媒體流,包括:
[0014]當(dāng)各媒體流中有一個(gè)音頻流時(shí),將所述音頻流作為參考流媒體;或者,
[0015]當(dāng)各媒體流中有兩個(gè)以上音頻流時(shí),根據(jù)所述兩個(gè)以上音頻流的傳輸速率,確定所述兩個(gè)以上音頻流中的一個(gè)音頻流為參考流媒體;或者,
[0016]當(dāng)各媒體流中未有音頻流時(shí),根據(jù)各媒體流的傳輸速率,確定各媒體流中的一個(gè)媒體流為參考流媒體。
[0017]上述方案中,所述根據(jù)所述兩個(gè)以上音頻流的傳輸速率,確定所述兩個(gè)以上音頻流中的一個(gè)音頻流為參考流媒體,包括:
[0018]定時(shí)獲取所述兩個(gè)以上音頻流中各音頻流的傳輸速率;
[0019]當(dāng)未設(shè)置參考媒體流時(shí),將所述兩個(gè)以上音頻流中傳輸速率最高的音頻流作為參考媒體流;
[0020]當(dāng)設(shè)置有參考媒體流時(shí),將所述兩個(gè)以上音頻流中除設(shè)置的參考媒體流外的其它各音頻流傳輸速率中的最高傳輸速率與所述設(shè)置的參考媒體流的傳輸速率進(jìn)行對(duì)比,確定差值超過(guò)設(shè)置的閾值時(shí),選擇所述其它各音頻流中傳輸速率最高的音頻流作為參考媒體流。
[0021]上述方案中,所述根據(jù)各媒體流的傳輸速率,確定各媒體流中的一個(gè)媒體流為參考流媒體,包括:
[0022]定時(shí)獲取各媒體流的傳輸速率;
[0023]當(dāng)未設(shè)置參考媒體流時(shí),將各媒體流中傳輸速率最高的媒體流作為參考媒體流;
[0024]當(dāng)設(shè)置有參考媒體流時(shí),將所述各媒體流中除設(shè)置的參考媒體流外的其它各媒體流傳輸速率中的最高傳輸速率與所述設(shè)置的參考媒體流的傳輸速率進(jìn)行對(duì)比,確定差值超過(guò)設(shè)置的閾值時(shí),選擇所述其它各媒體流中傳輸速率最高的媒體流作為參考媒體流。
[0025]上述方案中,所述根據(jù)確定的參考媒體流以及除參考媒體流外的其它各媒體流的類(lèi)型,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間,包括:
[0026]定時(shí)獲取各媒體流當(dāng)前的相對(duì)播放時(shí)間;所述相對(duì)播放時(shí)間為相對(duì)于播放起始位置的時(shí)間;
[0027]將所述其它各媒體流的相對(duì)播放時(shí)間減去參考媒體流的相對(duì)播放時(shí)間,得到同步誤差時(shí)間;
[0028]根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間。
[0029]上述方案中,當(dāng)所述其它各媒體流中包含視頻流時(shí),所述根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間,包括:
[0030]當(dāng)視頻流對(duì)應(yīng)的同步誤差時(shí)間大于第一值且小于等于第二值時(shí),控制相應(yīng)的播放設(shè)備視頻流播放完當(dāng)前幀后,將視頻流停留所述對(duì)應(yīng)的同步誤差時(shí)間后再播放下一幀;所述第一值小于所述第二值;或者,
[0031]當(dāng)視頻流對(duì)應(yīng)的同步誤差時(shí)間大于所述第二值且小于等于所述第三值時(shí),控制相應(yīng)的播放設(shè)備重復(fù)播放視頻流的當(dāng)前幀直至下一次獲取傳輸速率;所述第二值小于所述第三值;或者,
[0032]當(dāng)視頻流對(duì)應(yīng)的同步誤差時(shí)間大于所述第三值時(shí),控制相應(yīng)的播放設(shè)備將視頻流跳回到獲取的參考媒體流的相對(duì)播放時(shí)間進(jìn)行播放。
[0033]上述方案中,當(dāng)所述其它各媒體流中包含音頻流時(shí),所述根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間,包括:
[0034]當(dāng)音頻流對(duì)應(yīng)的同步誤差時(shí)間小于第四值或大于第五值時(shí),控制相應(yīng)的播放設(shè)備將音頻流跳回到獲取的參考媒體流的相對(duì)播放時(shí)間進(jìn)行播放;同時(shí),對(duì)調(diào)整前后的聲音之間進(jìn)行差值;所述第四值小于所述第五值。
[0035]上述方案中,當(dāng)所述其它各媒體流中包含字幕流時(shí),所述根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間,包括:
[0036]當(dāng)參考媒體流的相對(duì)播放時(shí)間在第六值至第七值范圍內(nèi),且字幕流對(duì)應(yīng)的同步誤差時(shí)間不在第六值至第七值范圍內(nèi)時(shí),控制相應(yīng)的播放設(shè)備將字幕流調(diào)整到獲取的參考媒體流的相對(duì)播放時(shí)間進(jìn)行播放;所述第六值為當(dāng)前顯示的字幕的起始播放時(shí)間,所述第六值為當(dāng)前顯示的字幕的終止播放時(shí)間。
[0037]上述方案中,所述將媒體文件的多個(gè)媒體流分別傳輸至對(duì)應(yīng)的播放設(shè)備之前,所述方法還包括:
[0038]將所述媒體文件解析為多個(gè)媒體流;
[0039]為解析的每個(gè)媒體流指定關(guān)聯(lián)的播放設(shè)備;
[0040]并將關(guān)聯(lián)的播放設(shè)備綁定為設(shè)備組。
[0041]本發(fā)明實(shí)施例還提供了一種媒體在多設(shè)備上協(xié)同播放的裝置,包括:媒體流發(fā)送模塊、參考媒體流選擇模塊以及同步控制模塊;其中,
[0042]所述媒體流發(fā)送模塊,用于將媒體文件的多個(gè)媒體流分別傳輸至對(duì)應(yīng)的播放設(shè)備;
[0043]所述參考媒體流選擇模塊,用于根據(jù)各媒體流的類(lèi)型,動(dòng)態(tài)確定參考媒體流;
[0044]所述同步控制模塊,用于在各媒體流的播放過(guò)程中,根據(jù)確定的參考媒體流以及除參考媒體流外的其它各媒體流的類(lèi)型,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間。
[0045]上述方案中,所述同步控制模塊,還用于會(huì)話(huà)連接建立后,獲取各播放設(shè)備當(dāng)前的網(wǎng)絡(luò)時(shí)延;并根據(jù)所述網(wǎng)絡(luò)時(shí)延,確定各播放設(shè)備的基準(zhǔn)系統(tǒng)時(shí)間,以使各播放設(shè)備校準(zhǔn)自身的系統(tǒng)時(shí)間。
[0046]上述方案中,所述參考媒體流選擇模塊,具體用于:
[0047]當(dāng)各媒體流中有一個(gè)音頻流時(shí),將所述音頻流作為參考流媒體;或者,
[0048]當(dāng)各媒體流中有兩個(gè)以上音頻流時(shí),根據(jù)所述兩個(gè)以上音頻流的傳輸速率,確定所述兩個(gè)以上音頻流中的一個(gè)音頻流為參考流媒體;或者,
[0049]當(dāng)各媒體流中未有音頻流時(shí),根據(jù)各媒體流的傳輸速率,確定各媒體流中的一個(gè)媒體流為參考流媒體。
[0050]上述方案中,所述同步控制模塊,具體用于:
[0051]定時(shí)獲取各媒體流當(dāng)前的相對(duì)播放時(shí)間;所述相對(duì)播放時(shí)間為相對(duì)于播放起始位置的時(shí)間;將所述其它各媒體流的相對(duì)播放時(shí)間減去參考媒體流的相對(duì)播放時(shí)間,得到同步誤差時(shí)間;并根據(jù)所述其它各媒體流的類(lèi)型及對(duì)應(yīng)的同步誤差時(shí)間,控制相應(yīng)的播放設(shè)備調(diào)整所述其它各媒體流的播放時(shí)間。
[0052]上述方案中,所述裝置還包括:媒體解析模塊,用于將所述媒體文件解析為多個(gè)媒體流;
[0053]所述媒體流發(fā)送模塊,還用于為解析的每個(gè)媒體流指定關(guān)聯(lián)的播放設(shè)備;并將關(guān)聯(lián)的播放設(shè)備綁定為設(shè)備組。
[0054]本發(fā)明實(shí)施例又提供了一種終端,包括上述的媒體在多設(shè)備上協(xié)同播放的裝置。
[0055]本發(fā)明實(shí)施例提供的媒體在多設(shè)備上協(xié)同播放的方法、裝置及終端,將媒體文件的多個(gè)媒體流分別傳輸至對(duì)應(yīng)的播放設(shè)備;根據(jù)各媒體流的類(lèi)型,動(dòng)態(tài)確定參考媒體流;在各媒體流的播放過(guò)程中,根據(jù)確定的參考媒體流以及除參考媒體流外的其它各媒體流的類(lèi)型,控制相應(yīng)的播放設(shè)備調(diào)整所述