本發(fā)明涉及音頻圖像同步技術(shù)領(lǐng)域,特別是涉及一種跨設(shè)備的音頻圖像同步播放的方法、裝置及系統(tǒng)。
背景技術(shù):
在智能電視或機(jī)頂盒等大屏幕設(shè)備上觀看視頻日趨流行,然而,在某些場(chǎng)合,例如,為免影響他人工作或?qū)W習(xí),用戶需要將大屏幕設(shè)備上的音頻通過耳機(jī)等其他設(shè)備播放。
現(xiàn)有技術(shù)中,通常直接通過有線連接或藍(lán)牙等其他設(shè)備來播放大屏幕設(shè)備上的音頻,但是,直接有線連接對(duì)于用戶來說,使用時(shí)會(huì)受到線的長(zhǎng)度的限制,使用很不方便,而藍(lán)牙設(shè)備則有硬件限制。因此,亟需提供一種簡(jiǎn)單通用的跨設(shè)備的音頻圖像同步播放的方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種跨設(shè)備的音頻圖像同步播放的方法、裝置及系統(tǒng),以實(shí)現(xiàn)在不同設(shè)備間音頻圖像的同步播放。具體技術(shù)方案如下:
一種跨設(shè)備的音頻圖像同步播放的方法,包括:
第一設(shè)備在本地獲取音頻數(shù)據(jù)并發(fā)送給第二設(shè)備;
所述第一設(shè)備獲取音頻延時(shí)時(shí)間,在到達(dá)所述音頻延時(shí)時(shí)間后播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像。
如上所述的方法,其中,所述第一設(shè)備在本地獲取音頻數(shù)據(jù)并發(fā)送給第二設(shè)備,包括:
所述第一設(shè)備關(guān)閉本地聲音輸出,并通過系統(tǒng)錄音獲取所述音頻數(shù)據(jù);
所述第一設(shè)備對(duì)所述音頻數(shù)據(jù)編碼后發(fā)送給所述第二設(shè)備。
如上所述的方法,其中,所述第一設(shè)備獲取音頻延時(shí)時(shí)間,包括:
所述第一設(shè)備計(jì)時(shí)得到編碼延時(shí)時(shí)間;所述編碼延時(shí)時(shí)間是所述第一設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)脈沖編碼調(diào)制PCM數(shù)據(jù)包進(jìn)行編碼所用的時(shí)間;
所述第一設(shè)備通過向所述第二設(shè)備發(fā)送網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求,獲取與所述第二設(shè)備之間發(fā)送所述音頻數(shù)據(jù)的平均網(wǎng)絡(luò)延時(shí)時(shí)間,并獲取所述第二設(shè)備的解碼延時(shí)時(shí)間、緩存延時(shí)時(shí)間以及播放延時(shí)時(shí)間;
所述第一設(shè)備計(jì)算所述編碼延時(shí)時(shí)間、所述平均網(wǎng)絡(luò)延時(shí)時(shí)間、所述第二設(shè)備的解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及所述播放延時(shí)時(shí)間之和,得到所述音頻延時(shí)時(shí)間。
如上所述的方法,其中,所述第一設(shè)備通過向所述第二設(shè)備發(fā)送網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求,獲取與所述第二設(shè)備之間發(fā)送所述音頻數(shù)據(jù)的平均網(wǎng)絡(luò)延時(shí)時(shí)間,包括:
所述第一設(shè)備記錄向所述第二設(shè)備發(fā)送所述網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求的發(fā)送時(shí)間、接收到所述第二設(shè)備發(fā)送的網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)的接收時(shí)間;其中,所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)中包含所述第二設(shè)備的解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及所述播放延時(shí)時(shí)間;
所述第一設(shè)備根據(jù)所述發(fā)送時(shí)間、所述接收時(shí)間以及所記錄的所述發(fā)送時(shí)間和接收時(shí)間的數(shù)量,計(jì)算得到所述平均網(wǎng)絡(luò)延時(shí)時(shí)間。
如上所述的方法,其中,所述第一設(shè)備獲取音頻延時(shí)時(shí)間,在到達(dá)所述音頻延時(shí)時(shí)間后播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像之后,還包括:
所述第一設(shè)備接收所述第二設(shè)備發(fā)送的暫停播放命令,并暫停播放所述圖像;
所述第一設(shè)備向所述第二設(shè)備發(fā)送暫停播放響應(yīng),并向所述第二設(shè)備發(fā)送靜默音頻數(shù)據(jù)。
如上所述的方法,其中,所述第一設(shè)備向所述第二設(shè)備發(fā)送暫停播放響應(yīng),并暫停播放所述圖像之后,還包括:
所述第一設(shè)備接收所述第二設(shè)備發(fā)送的恢復(fù)播放命令,并恢復(fù)播放所述圖像;
所述第一設(shè)備向所述第二設(shè)備發(fā)送恢復(fù)播放響應(yīng),并恢復(fù)向所述第二設(shè)備發(fā)送正常的音頻數(shù)據(jù)。
如上所述的方法,其中,所述第一設(shè)備獲取音頻延時(shí)時(shí)間,在到達(dá)所述音頻延時(shí)時(shí)間后播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像之后,還包括:
所述第一設(shè)備接收所述第二設(shè)備發(fā)送的拖動(dòng)命令;所述拖動(dòng)命令中包含快進(jìn)命令或快退命令;所述快進(jìn)命令用于快進(jìn)播放所述圖像,所述快退命令用于快退播放所述圖像;
所述第一設(shè)備向所述第二設(shè)備發(fā)送拖動(dòng)響應(yīng);
所述第一設(shè)備根據(jù)所述拖動(dòng)命令,重新通過系統(tǒng)錄音獲取所述音頻數(shù)據(jù)并發(fā)送給所述第二設(shè)備。
如上所述的方法,其中,所述第一設(shè)備在本地獲取音頻數(shù)據(jù)并發(fā)送給第二設(shè)備之前,還包括:
所述第一設(shè)備接收所述第二設(shè)備發(fā)送的同步連接建立請(qǐng)求;其中,所述同步連接建立請(qǐng)求中包含所述第二設(shè)備的互聯(lián)網(wǎng)協(xié)議IP地址信息和端口信息;
所述第一設(shè)備根據(jù)所述IP地址信息和端口信息,建立與所述第二設(shè)備之間的同步連接。
一種跨設(shè)備的音頻圖像同步播放的方法,包括:
第二設(shè)備接收第一設(shè)備發(fā)送的音頻數(shù)據(jù);
所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼并緩存;
所述第二設(shè)備在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù)。
如上所述的方法,其中,還包括:
所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼的同時(shí),計(jì)時(shí)得到解碼延時(shí)時(shí)間;所述解碼延時(shí)時(shí)間是所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)脈沖編碼調(diào)制PCM數(shù)據(jù)包進(jìn)行解碼所用的時(shí)間。
如上所述的方法,其中,所述第二設(shè)備在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù)之前,還包括:
所述第二設(shè)備接收所述第一設(shè)備發(fā)送的網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求;
所述第二設(shè)備向所述第一設(shè)備發(fā)送網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng);其中,所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)中包含所述第二設(shè)備的所述解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及播放延時(shí)時(shí)間。
如上所述的方法,其中,所述第二設(shè)備在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù)之后,還包括:
所述第二設(shè)備從開始播放所述音頻數(shù)據(jù)時(shí)記錄系統(tǒng)時(shí)間P;
所述第二設(shè)備每播放一個(gè)所述音頻數(shù)據(jù)的PCM數(shù)據(jù)包計(jì)時(shí)統(tǒng)計(jì)播放時(shí)間其中,α為所述音頻數(shù)據(jù)的采樣率,β為所述音頻數(shù)據(jù)的編碼幀長(zhǎng),qi表示播放第i個(gè)所述PCM數(shù)據(jù)包所用的時(shí)間;
所述第二設(shè)備根據(jù)所述系統(tǒng)時(shí)間P和所述播放時(shí)間Qn判斷是否播放所述當(dāng)前的PCM數(shù)據(jù)包。
如上所述的方法,其中,所述第二設(shè)備根據(jù)所述系統(tǒng)時(shí)間P和所述播放時(shí)間Qn判斷是否播放所述當(dāng)前的PCM數(shù)據(jù)包,包括:
所述第二設(shè)備若判斷則丟棄當(dāng)前的PCM數(shù)據(jù)包;
所述第二設(shè)備若判斷則播放當(dāng)前PCM數(shù)據(jù)包;
所述第二設(shè)備更新所述播放時(shí)間為
其中,α為音頻采樣率,β為編碼幀長(zhǎng)。
如上所述的方法,其中,所述第二設(shè)備在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù)之后,還包括:
所述第二設(shè)備向所述第一設(shè)備發(fā)送暫停播放命令;
所述第二設(shè)備接收所述第一設(shè)備發(fā)送的暫停播放響應(yīng)以及靜默音頻數(shù)據(jù);
所述第二設(shè)備播放所述靜默音頻數(shù)據(jù)。
如上所述的方法,其中,所述第二設(shè)備播放所述靜默音頻數(shù)據(jù)之后,還包括:
所述第二設(shè)備向所述第一設(shè)備發(fā)送恢復(fù)播放命令;
所述第二設(shè)備接收所述第一設(shè)備發(fā)送的恢復(fù)播放響應(yīng),并恢復(fù)播放所述音頻數(shù)據(jù)。
如上所述的方法,其中,所述第二設(shè)備在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù)之后,還包括:
所述第二設(shè)備向所述第一設(shè)備發(fā)送拖動(dòng)命令,所述拖動(dòng)命令中包含快進(jìn)命令或快退命令;
所述第二設(shè)備接收所述第一設(shè)備發(fā)送的拖動(dòng)響應(yīng);
所述第二設(shè)備清空緩存的所述音頻數(shù)據(jù);
所述第二設(shè)備重新接收所述第一設(shè)備發(fā)送的所述音頻數(shù)據(jù)并緩存。
如上所述的方法,其中,所述第二設(shè)備接收第一設(shè)備發(fā)送的音頻數(shù)據(jù)之前,還包括:
所述第二設(shè)備向所述第一設(shè)備發(fā)送同步連接建立請(qǐng)求;其中,所述同步連接建立請(qǐng)求中包含所述第二設(shè)備的互聯(lián)網(wǎng)協(xié)議IP地址信息和端口信息;所述同步連接建立請(qǐng)求用于請(qǐng)求與所述第一設(shè)備之間建立同步連接。
一種跨設(shè)備的音頻圖像同步播放的裝置,包括:
獲取發(fā)送模塊,用于在本地獲取音頻數(shù)據(jù)并發(fā)送給第二設(shè)備;獲取音頻延時(shí)時(shí)間;
圖像播放模塊,用于在到達(dá)所述音頻延時(shí)時(shí)間后播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像。
如上所述的裝置,其中,所述獲取發(fā)送模塊具體用于:
關(guān)閉本地聲音輸出,并通過系統(tǒng)錄音獲取所述音頻數(shù)據(jù);對(duì)所述音頻數(shù)據(jù)編碼后發(fā)送給所述第二設(shè)備;
計(jì)時(shí)得到編碼延時(shí)時(shí)間;所述編碼延時(shí)時(shí)間是所述第一設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)脈沖編碼調(diào)制PCM數(shù)據(jù)包進(jìn)行編碼所用的時(shí)間;
記錄向所述第二設(shè)備發(fā)送所述網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求的發(fā)送時(shí)間、接收到所述第二設(shè)備發(fā)送的網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)的接收時(shí)間;其中,所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)中包含所述第二設(shè)備的解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及所述播放延時(shí)時(shí)間;
根據(jù)所述發(fā)送時(shí)間、所述接收時(shí)間以及所記錄的所述發(fā)送時(shí)間和接收時(shí)間的數(shù)量,計(jì)算得到所述平均網(wǎng)絡(luò)延時(shí)時(shí)間;
計(jì)算所述編碼延時(shí)時(shí)間、所述平均網(wǎng)絡(luò)延時(shí)時(shí)間、所述解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及所述播放延時(shí)時(shí)間之和,得到所述音頻延時(shí)時(shí)間。
如上所述的裝置,其中,還包括:
接收模塊,用于接收所述第二設(shè)備發(fā)送的暫停播放命令;
所述獲取發(fā)送模塊,還用于向所述第二設(shè)備發(fā)送暫停播放響應(yīng)和靜默音頻數(shù)據(jù);
所述圖像播放模塊,還用于暫停播放所述圖像。
一種跨設(shè)備的音頻圖像同步播放的裝置,包括:
接收模塊,用于接收第一設(shè)備發(fā)送的音頻數(shù)據(jù);
緩存模塊,用于對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼并緩存;
音頻播放模塊,用于在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù)。
如上所述的裝置,其中,還包括:
計(jì)時(shí)模塊,用于在所述緩存模塊對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼的同時(shí),計(jì)時(shí)得到解碼延時(shí)時(shí)間;所述解碼延時(shí)時(shí)間是所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)脈沖編碼調(diào)制PCM數(shù)據(jù)包進(jìn)行解碼所用的時(shí)間;
所述接收模塊,還用于接收所述第一設(shè)備發(fā)送的網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求;
所述裝置還包括:發(fā)送模塊,用于向所述第一設(shè)備發(fā)送網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng);其中,所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)中包含所述第二設(shè)備的所述解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及播放延時(shí)時(shí)間。
如上所述的裝置,其中,所述計(jì)時(shí)模塊還用于:
從所述音頻播放模塊開始播放所述音頻數(shù)據(jù)時(shí)記錄系統(tǒng)時(shí)間P;
每播放一個(gè)所述音頻數(shù)據(jù)的PCM數(shù)據(jù)包計(jì)時(shí)統(tǒng)計(jì)播放時(shí)間其中,α為所述音頻數(shù)據(jù)的采樣率,β為所述音頻數(shù)據(jù)的編碼幀長(zhǎng),qi表示播放第i個(gè)所述PCM數(shù)據(jù)包所用的時(shí)間;
所述裝置還包括:判斷模塊,用于根據(jù)所述系統(tǒng)時(shí)間P和所述播放時(shí)間Qn判斷是否播放所述當(dāng)前的PCM數(shù)據(jù)包;
若判斷則丟棄當(dāng)前的PCM數(shù)據(jù)包;
若判斷則播放當(dāng)前PCM數(shù)據(jù)包;
更新所述播放時(shí)間為
其中,α為音頻采樣率,β為編碼幀長(zhǎng)。
如上所述的裝置,其中,還包括:
發(fā)送模塊,用于向所述第一設(shè)備發(fā)送暫停播放命令;
所述接收模塊,還用于接收所述第一設(shè)備發(fā)送的暫停播放響應(yīng)以及靜默音頻數(shù)據(jù);
所述音頻播放模塊,還用于播放所述靜默音頻數(shù)據(jù)。
一種音頻圖像同步播放的系統(tǒng),所述系統(tǒng)包括如權(quán)利要求18-20任一項(xiàng)所述的跨設(shè)備的音頻圖像同步播放的裝置,以及如權(quán)利要求21-24任一項(xiàng)所述的跨設(shè)備的音頻圖像同步播放的裝置。
本發(fā)明實(shí)施例提供的跨設(shè)備的音頻圖像同步播放的方法、裝置及系統(tǒng),第一設(shè)備通過在本地獲取音頻數(shù)據(jù)并發(fā)送給第二設(shè)備,并獲取音頻延時(shí)時(shí)間,在到達(dá)所述音頻延時(shí)時(shí)間后播放圖像,如此,利用系統(tǒng)錄音得到音頻數(shù)據(jù),通過將電視端設(shè)備的音頻數(shù)據(jù)回傳至手機(jī)等設(shè)備,同時(shí)獲取到音頻播放的延時(shí)時(shí)間,在達(dá)到音頻延時(shí)時(shí)間后開始播放圖像,實(shí)現(xiàn)了音頻圖像的同步播放。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一提供的跨設(shè)備的音頻圖像同步播放的方法的流程圖;
圖2為本發(fā)明實(shí)施例二提供的跨設(shè)備的音頻圖像同步播放的方法的流程圖;
圖3是本發(fā)明實(shí)施例二提供的跨設(shè)備的音頻圖像同步播放的方法中第一設(shè)備獲取平均網(wǎng)絡(luò)延時(shí)時(shí)間的示意圖;
圖4為本發(fā)明實(shí)施例三提供的跨設(shè)備的音頻圖像同步播放的方法的流程圖;
圖5為本發(fā)明實(shí)施例四提供的跨設(shè)備的音頻圖像同步播放的方法的流程圖;
圖6為本發(fā)明實(shí)施例一提供的跨設(shè)備的音頻圖像同步播放的裝置的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例二提供的跨設(shè)備的音頻圖像同步播放的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
在本發(fā)明各實(shí)施例中,第一設(shè)備可以為智能電視等大屏幕設(shè)備,第二設(shè)備可以為手機(jī)等設(shè)備,利用智能電視或機(jī)頂盒端的系統(tǒng)錄音功能,將錄音得到的音頻數(shù)據(jù)經(jīng)過編碼后,通過無線網(wǎng)絡(luò)發(fā)送給手機(jī),手機(jī)進(jìn)行解碼,同時(shí)將整個(gè)音頻回傳播放的延時(shí)時(shí)間返回給智能電視,使視頻播放器延遲播放圖像,從而實(shí)現(xiàn)電視端圖像和手機(jī)端音頻的同步播放。
圖1為本發(fā)明實(shí)施例一提供的跨設(shè)備的音頻圖像同步播放的方法的流程圖。如圖1所示,本實(shí)施例提供的方法可以由第一設(shè)備,如智能電視等大屏幕設(shè)備執(zhí)行,具體的,本實(shí)施例提供的方法包括:
步驟101、第一設(shè)備在本地獲取音頻數(shù)據(jù)并發(fā)送給第二設(shè)備。
在本實(shí)施例中,所述第一設(shè)備利用系統(tǒng)錄音功能,將錄到的音頻數(shù)據(jù)經(jīng)過編碼,通過無線網(wǎng)絡(luò)發(fā)送給第二設(shè)備,如此,通過系統(tǒng)錄音得到音頻數(shù)據(jù),使得第二設(shè)備與第一設(shè)備上的第三方播放器適配非常簡(jiǎn)單。
實(shí)際應(yīng)用中,所述第一設(shè)備在本地獲取音頻數(shù)據(jù)時(shí),關(guān)閉本地聲音輸出,并通過系統(tǒng)錄音獲取所述音頻數(shù)據(jù);并對(duì)所述音頻數(shù)據(jù)編碼后發(fā)送給所述第二設(shè)備。
步驟102、所述第一設(shè)備獲取音頻延時(shí)時(shí)間,在到達(dá)所述音頻延時(shí)時(shí)間后播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像。
本步驟中,所述音頻延時(shí)時(shí)間包括編碼延時(shí)時(shí)間、解碼延時(shí)時(shí)間、緩存延時(shí)時(shí)間、播放延時(shí)時(shí)間以及平均網(wǎng)絡(luò)延時(shí)時(shí)間。
需要說明的是,所述編碼延時(shí)時(shí)間和所述平均網(wǎng)絡(luò)延時(shí)時(shí)間是由所述第一設(shè)備計(jì)算得到的,具體的,所述編碼延時(shí)時(shí)間是所述第一設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)脈沖編碼調(diào)制(Pulse Code Modulation,PCM)數(shù)據(jù)包進(jìn)行編碼所用的時(shí)間;所述平均網(wǎng)絡(luò)延時(shí)時(shí)間是所述第一設(shè)備和所述第二設(shè)備之間傳輸所述音頻數(shù)據(jù)的網(wǎng)絡(luò)延時(shí)時(shí)間。
還需要說明的是,所述解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間和播放延時(shí)時(shí)間是由所述第二設(shè)備獲取并發(fā)送給所述第一設(shè)備的;其中,所述解碼延時(shí)時(shí)間是所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)PCM數(shù)據(jù)包進(jìn)行解碼所用的時(shí)間,所述緩存延時(shí)時(shí)間是預(yù)先設(shè)定好的,所述播放延時(shí)時(shí)間是所述第二設(shè)備將待播放音頻數(shù)據(jù)寫入播放設(shè)備所需的時(shí)間。
在本步驟中,所述第一設(shè)備在獲取到所述音頻延時(shí)時(shí)間后,在到達(dá)所述音頻延時(shí)時(shí)間后開始播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像,從而實(shí)現(xiàn)圖像與音頻的同步播放。
本實(shí)施例的技術(shù)方案中,所述第一設(shè)備在本地獲取所述音頻數(shù)據(jù)并發(fā)送給所述第二設(shè)備,并獲取所述音頻延時(shí)時(shí)間,在到達(dá)所述音頻延時(shí)時(shí)間后播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像。如此,利用系統(tǒng)錄音得到音頻數(shù)據(jù),通過將第一設(shè)備的音頻數(shù)據(jù)回傳至第二設(shè)備,同時(shí)獲取到音頻播放的延時(shí)時(shí)間,在達(dá)到音頻延時(shí)時(shí)間后開始播放圖像,實(shí)現(xiàn)了音頻圖像的同步播放。
圖2為本發(fā)明實(shí)施例二提供的跨設(shè)備的音頻圖像同步播放的方法的流程圖。如圖2所示,在上述實(shí)施例的基礎(chǔ)上,在本實(shí)施例中,上述步驟102中所述第一設(shè)備獲取音頻延時(shí)時(shí)間,具體包括:
步驟1021、所述第一設(shè)備計(jì)時(shí)得到編碼延時(shí)時(shí)間;所述編碼延時(shí)時(shí)間是所述第一設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)PCM數(shù)據(jù)包進(jìn)行編碼所用的時(shí)間。
實(shí)際應(yīng)用中,所述第一設(shè)備計(jì)時(shí)從取得第一個(gè)PCM數(shù)據(jù)包到編碼得到第一幀編碼音頻數(shù)據(jù)的編碼延時(shí)時(shí)間T1。
步驟1022、所述第一設(shè)備通過向所述第二設(shè)備發(fā)送網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求,獲取與所述第二設(shè)備之間發(fā)送所述音頻數(shù)據(jù)的平均網(wǎng)絡(luò)延時(shí)時(shí)間,并獲取所述第二設(shè)備的解碼延時(shí)時(shí)間、緩存延時(shí)時(shí)間以及播放延時(shí)時(shí)間。
具體的,所述第一設(shè)備通過多次發(fā)送所述網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求計(jì)算所述平均網(wǎng)絡(luò)延時(shí)時(shí)間。
本步驟中,所述第一設(shè)備記錄向所述第二設(shè)備發(fā)送所述網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求的發(fā)送時(shí)間、接收到所述第二設(shè)備發(fā)送的網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)的接收時(shí)間;其中,所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)中包含所述第二設(shè)備的解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及所述播放延時(shí)時(shí)間;所述第一設(shè)備根據(jù)所述發(fā)送時(shí)間、所述接收時(shí)間以及所記錄的所述發(fā)送時(shí)間和接收時(shí)間的數(shù)量,計(jì)算得到所述平均網(wǎng)絡(luò)延時(shí)時(shí)間。
圖3是本發(fā)明實(shí)施例二提供的跨設(shè)備的音頻圖像同步播放的方法中第一設(shè)備獲取平均網(wǎng)絡(luò)延時(shí)時(shí)間的示意圖,如圖3所示,第一設(shè)備在t0向第二設(shè)備發(fā)送所述網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求,所述第二設(shè)備在t1接收到所述網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求,并在t2向所述第一設(shè)備發(fā)送所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng),所述第一設(shè)備在t3接收到所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng);記本次網(wǎng)絡(luò)延時(shí)時(shí)間為θ,
由此可知,所述平均網(wǎng)絡(luò)延時(shí)時(shí)間其中,n為所述第一設(shè)備所記錄的所述發(fā)送時(shí)間和接收時(shí)間的數(shù)量,i表示所述第一設(shè)備獲取的第i次網(wǎng)絡(luò)延時(shí)時(shí)間。
步驟1023、所述第一設(shè)備計(jì)算所述編碼延時(shí)時(shí)間、所述平均網(wǎng)絡(luò)延時(shí)時(shí)間、所述第二設(shè)備的解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及所述播放延時(shí)時(shí)間之和,得到所述音頻延時(shí)時(shí)間。
本實(shí)施例的技術(shù)方案,所述第一設(shè)備將所述音頻數(shù)據(jù)發(fā)送給所述第二設(shè)備,并獲取所述音頻延時(shí)時(shí)間,在達(dá)到音頻延時(shí)時(shí)間后開始播放圖像,實(shí)現(xiàn)了音頻圖像的同步播放。
圖4為本發(fā)明實(shí)施例三提供的跨設(shè)備的音頻圖像同步播放的方法的流程圖。如圖4所示,在上述實(shí)施例的基礎(chǔ)上,在上述步驟101之前,本實(shí)施例提供的方法進(jìn)一步還包括:
步驟201、所述第一設(shè)備接收所述第二設(shè)備發(fā)送的同步連接建立請(qǐng)求;其中,所述同步連接建立請(qǐng)求中包含所述第二設(shè)備的互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址信息和端口信息。
需要說明的是,所述第二設(shè)備在向目標(biāo)第一設(shè)備發(fā)送所述同步連接建立請(qǐng)求時(shí),會(huì)創(chuàng)建數(shù)據(jù)接收和控制服務(wù)(server),同時(shí)將所述第二設(shè)備的IP地址信息和端口信息發(fā)送給所述第一設(shè)備。
步驟202、所述第一設(shè)備根據(jù)所述IP地址信息和端口信息,建立與所述第二設(shè)備之間的同步連接。
具體的,所述第一設(shè)備接收到所述同步連接建立請(qǐng)求后,創(chuàng)建客戶(client)來連接所述第二設(shè)備的數(shù)據(jù)和控制服務(wù)(server),從而完成所述第一設(shè)備與所述第二設(shè)備之間的同步連接。
進(jìn)一步的,在實(shí)際應(yīng)用中,還會(huì)遇到暫停播放、恢復(fù)播放和快進(jìn)快退等操作情景,下面對(duì)此進(jìn)行說明。
具體的,針對(duì)暫停播放(pasue)的情景和恢復(fù)播放(resume)的場(chǎng)景,所述第一設(shè)備會(huì)接收到所述第二設(shè)備發(fā)送的暫停播放命令;在接收到所述暫停播放命令后暫停播放所述圖像,同時(shí)所述第一設(shè)備向所述第二設(shè)備發(fā)送暫停播放下響應(yīng)。但是此時(shí)系統(tǒng)錄音還在繼續(xù),只是此時(shí)錄到的音頻為靜默音頻數(shù)據(jù),所述第一設(shè)備將錄音獲得的靜默音頻數(shù)據(jù)發(fā)送給所述第二設(shè)備,以使第二設(shè)備播放該靜默音頻數(shù)據(jù),也就是說在暫停播放期間,所述第二設(shè)備播放的是無聲的音頻數(shù)據(jù),以此來保證音頻和圖像的同步播放。
所述第一設(shè)備在接收到第二設(shè)備發(fā)送的恢復(fù)播放命令后恢復(fù)播放所述圖像,并向所述第二設(shè)備發(fā)送恢復(fù)播放響應(yīng),同時(shí)恢復(fù)向所述第二設(shè)備發(fā)送正常的音頻數(shù)據(jù)。即,在接收到所述恢復(fù)播放命令后,所述第一設(shè)備接著播放暫停前的圖像,并且恢復(fù)向所述第二設(shè)備發(fā)送正常的音頻數(shù)據(jù)。
針對(duì)快進(jìn)快退的場(chǎng)景,具體的,所述第一設(shè)備接收所述第二設(shè)備發(fā)送的拖動(dòng)命令(seek)并完成所述圖像播放的拖動(dòng)操作后,向所述第二設(shè)備發(fā)送拖動(dòng)響應(yīng)。此時(shí),所述系統(tǒng)錄音會(huì)獲取拖動(dòng)操作之后新的音頻數(shù)據(jù)并發(fā)送給所述第二設(shè)備;可以理解的是,所述拖動(dòng)命令可以是快進(jìn)命令或快退命令,所述快進(jìn)命令用于快進(jìn)播放所述圖像,所述快退命令用于快退播放所述圖像。
例如,所述第一設(shè)備接收到快進(jìn)命令后,所述圖像播放會(huì)跳轉(zhuǎn)到用戶快進(jìn)的時(shí)間點(diǎn)播放,并向所述第二設(shè)備發(fā)送快進(jìn)響應(yīng)。此時(shí),所述系統(tǒng)錄音會(huì)獲取該快進(jìn)時(shí)間點(diǎn)之后播放的音頻數(shù)據(jù)并經(jīng)過編碼后發(fā)送給所述第二設(shè)備。
在本實(shí)施例中,所述第一設(shè)備和所述第二設(shè)備之間建立同步連接之后,所述第一設(shè)備將在本地獲取的所述音頻數(shù)據(jù)發(fā)送給所述第二設(shè)備,并獲取所述音頻延時(shí)時(shí)間,在到達(dá)所述音頻延時(shí)時(shí)間后播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像,從而實(shí)現(xiàn)了音頻圖像的同步播放,并且在支持暫停、拖動(dòng)等操作的同時(shí),也能保持音頻圖像的同步播放。
圖5為本發(fā)明實(shí)施例四提供的跨設(shè)備的音頻圖像同步播放的方法的流程圖。如圖5所示,本實(shí)施例提供的方法具體可以包括:
步驟301、第二設(shè)備接收第一設(shè)備發(fā)送的音頻數(shù)據(jù)。
在本步驟之前,所述第二設(shè)備向所述第一設(shè)備發(fā)送同步連接建立請(qǐng)求;其中,所述同步連接建立請(qǐng)求中包含所述第二設(shè)備的互聯(lián)網(wǎng)協(xié)議IP地址信息和端口信息;所述同步連接建立請(qǐng)求用于請(qǐng)求與所述第一設(shè)備之間建立同步連接。
需要說明的是,所述第二設(shè)備在向目標(biāo)第一設(shè)備發(fā)送所述同步連接建立請(qǐng)求時(shí),會(huì)創(chuàng)建數(shù)據(jù)接收和控制服務(wù)(server),同時(shí)將所述第二設(shè)備的IP地址信息和端口信息發(fā)送給所述第一設(shè)備。
所述第一設(shè)備在接收到所述同步連接建立請(qǐng)求后,會(huì)創(chuàng)建客戶(client)來連接所述第二設(shè)備的數(shù)據(jù)和控制服務(wù)(server),從而完成所述第一設(shè)備與所述第二設(shè)備之間的同步連接。
可以理解的是,在所述第二設(shè)備與所述第一設(shè)備之間建立好同步連接之后,才可以進(jìn)行音頻數(shù)據(jù)的傳輸。
步驟302、所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼并緩存。
本步驟中,所述第二設(shè)備在對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼的同時(shí),計(jì)時(shí)得到解碼延時(shí)時(shí)間T3;可以理解的是,所述解碼延時(shí)時(shí)間是所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)PCM數(shù)據(jù)包進(jìn)行解碼所用的時(shí)間。
步驟303、所述第二設(shè)備在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù)。
具體的,在本步驟之前,所述第二設(shè)備還接收所述第一設(shè)備發(fā)送的網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求;并向所述第一設(shè)備發(fā)送網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng);其中,所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)中包含所述第二設(shè)備的所述解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及播放延時(shí)時(shí)間。
需要說明的是,所述緩存延時(shí)時(shí)間T4是預(yù)先設(shè)定好的,所述播放延時(shí)時(shí)間T5是設(shè)備固有且已知的參數(shù),根據(jù)所述第二設(shè)備的不同而不同。
具體的,所述第二設(shè)備可以根據(jù)公式計(jì)算獲得與所述緩存延時(shí)時(shí)間T4對(duì)應(yīng)的需要緩存的PCM數(shù)據(jù)包的個(gè)數(shù)N;其中,α為所述音頻數(shù)據(jù)的采樣率,β為所述音頻數(shù)據(jù)的編碼幀長(zhǎng)。
本實(shí)施例提供的跨設(shè)備的音頻圖像同步播放的方法,所述第一設(shè)備和所述第二設(shè)備之間建立同步連接之后,所述第二設(shè)備接收第一設(shè)備發(fā)送的音頻數(shù)據(jù);所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼并緩存;并在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù),從而實(shí)現(xiàn)了音頻圖像的同步播放。
可以理解的是,由于有時(shí)候網(wǎng)絡(luò)不穩(wěn)定或發(fā)生阻塞,發(fā)送的音頻數(shù)據(jù)沒有及時(shí)到達(dá)第二設(shè)備,致使第二設(shè)備緩存的音頻數(shù)據(jù)播放完,當(dāng)網(wǎng)絡(luò)恢復(fù)時(shí),阻塞的音頻數(shù)據(jù)到達(dá)時(shí),已經(jīng)晚于相對(duì)應(yīng)的圖像,這時(shí)需要判斷是否延遲,如果延遲則丟棄,直至同步時(shí)播放。
具體的,在上述實(shí)施例的基礎(chǔ)上,在上述步驟303之后,本實(shí)施例提供的方法進(jìn)一步還包括:
所述第二設(shè)備從開始播放所述音頻數(shù)據(jù)時(shí)記錄系統(tǒng)時(shí)間P;所述第二設(shè)備每播放一個(gè)所述音頻數(shù)據(jù)的PCM數(shù)據(jù)包計(jì)時(shí)統(tǒng)計(jì)播放時(shí)間所述第二設(shè)備根據(jù)所述系統(tǒng)時(shí)間P和所述播放時(shí)間Qn判斷是否播放所述當(dāng)前的PCM數(shù)據(jù)包;其中,α為所述音頻數(shù)據(jù)的采樣率,β為所述音頻數(shù)據(jù)的編碼幀長(zhǎng),qi表示播放第i個(gè)所述PCM數(shù)據(jù)包所用的時(shí)間。
具體的,所述第二設(shè)備根據(jù)所述系統(tǒng)時(shí)間P和所述播放時(shí)間Qn判斷是否播放所述當(dāng)前的PCM數(shù)據(jù)包,包括:所述第二設(shè)備若判斷則丟棄當(dāng)前的PCM數(shù)據(jù)包;所述第二設(shè)備若判斷則播放當(dāng)前PCM數(shù)據(jù)包;所述第二設(shè)備更新所述播放時(shí)間為其中,α為音頻采樣率,β為編碼幀長(zhǎng)。
進(jìn)一步的,在實(shí)際應(yīng)用中,還會(huì)遇到暫停播放、恢復(fù)播放和快進(jìn)快退等操作情景,下面對(duì)此進(jìn)行說明。
具體的,針對(duì)暫停播放(pause)的情景和恢復(fù)播放(resume)的場(chǎng)景,所述第二設(shè)備向所述第一設(shè)備發(fā)送暫停播放命令;在發(fā)送所述暫停播放命令后,所述第二設(shè)備會(huì)接收到所述第一設(shè)備發(fā)送的暫停播放響應(yīng)以及靜默音頻數(shù)據(jù);所述第二設(shè)備播放所述靜默音頻數(shù)據(jù);也就是說,在暫停播放期間,所述第二設(shè)備將接收到的所述靜默音頻數(shù)據(jù)插入所緩存的音頻數(shù)據(jù)隊(duì)列的開頭進(jìn)行播放,播放的是無聲的音頻數(shù)據(jù),對(duì)用戶來說,此時(shí)圖像是停止的和聲音是靜默的,以此來保證音頻和圖像的同步。進(jìn)一步的,為了避免控制命令與音頻數(shù)據(jù)的網(wǎng)絡(luò)發(fā)送有時(shí)差而出現(xiàn)雜音,所述第二設(shè)備還可以將播放音頻調(diào)低至靜音。
所述第二設(shè)備向所述第一設(shè)備發(fā)送恢復(fù)播放命令;并接收所述第一設(shè)備發(fā)送的恢復(fù)播放響應(yīng),并恢復(fù)播放所述音頻數(shù)據(jù)。實(shí)際應(yīng)用中,所述第二設(shè)備在恢復(fù)播放后,將接收到的所述第一設(shè)備發(fā)送的音頻數(shù)據(jù)插入所緩存的音頻數(shù)據(jù)隊(duì)列的末尾,并恢復(fù)播放音量。
針對(duì)快進(jìn)快退的場(chǎng)景,具體的,所述第二設(shè)備向所述第一設(shè)備發(fā)送拖動(dòng)命令,所述第二設(shè)備接收所述第一設(shè)備發(fā)送的拖動(dòng)響應(yīng),清空緩存的所述音頻數(shù)據(jù),并重新接收所述第一設(shè)備發(fā)送的所述音頻數(shù)據(jù)并緩存;其中,所述拖動(dòng)命令中包含快進(jìn)命令或快退命令。
具體的,所述第二設(shè)備清空所緩存的音頻數(shù)據(jù),并重置所述系統(tǒng)時(shí)間P和所述播放時(shí)間Qn為零,重新接受所述第一設(shè)備發(fā)送的所述音頻數(shù)據(jù)并緩存,在重新緩存N個(gè)PCM數(shù)據(jù)包后開始播放音頻。
本實(shí)施例提供的跨設(shè)備的音頻圖像同步播放的方法,所述第一設(shè)備和所述第二設(shè)備之間建立同步連接之后,所述第一設(shè)備將在本地獲取的所述音頻數(shù)據(jù)發(fā)送給所述第二設(shè)備,并獲取所述音頻延時(shí)時(shí)間,在到達(dá)所述音頻延時(shí)時(shí)間后播放圖像,從而實(shí)現(xiàn)了不同設(shè)備間音頻圖像的同步播放,并且在支持暫停、拖動(dòng)等操作的同時(shí),也能保持音頻圖像的同步播放。
圖6為本發(fā)明實(shí)施例一提供的跨設(shè)備的音頻圖像同步播放的裝置的結(jié)構(gòu)示意圖。如圖6所示,本實(shí)施例提供的跨設(shè)備的音頻圖像同步播放的裝置60可以包括:獲取發(fā)送模塊61和圖像播放模塊62。
其中,獲取發(fā)送模塊61,用于在本地獲取音頻數(shù)據(jù)并發(fā)送給第二設(shè)備;獲取音頻延時(shí)時(shí)間;
圖像播放模塊62,用于在到達(dá)所述音頻延時(shí)時(shí)間后播放與所述音頻數(shù)據(jù)對(duì)應(yīng)的圖像。
具體的,所述獲取發(fā)送模塊61在本地獲取音頻數(shù)據(jù)并發(fā)送給所述第二設(shè)備時(shí),關(guān)閉本地聲音輸出,并通過系統(tǒng)錄音獲取所述音頻數(shù)據(jù);對(duì)所述音頻數(shù)據(jù)編碼后發(fā)送給所述第二設(shè)備。
所述獲取發(fā)送模塊61在獲取所述音頻延時(shí)時(shí)間時(shí),計(jì)時(shí)得到編碼延時(shí)時(shí)間;所述編碼延時(shí)時(shí)間是所述第一設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)PCM數(shù)據(jù)包進(jìn)行編碼所用的時(shí)間;通過向所述第二設(shè)備發(fā)送網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求,獲取與所述第二設(shè)備之間發(fā)送所述音頻數(shù)據(jù)的平均網(wǎng)絡(luò)延時(shí)時(shí)間,所述第二設(shè)備的解碼延時(shí)時(shí)間、緩存延時(shí)時(shí)間以及播放延時(shí)時(shí)間;計(jì)算所述編碼延時(shí)時(shí)間、所述平均網(wǎng)絡(luò)延時(shí)時(shí)間、所述解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及所述播放延時(shí)時(shí)間之和,得到所述音頻延時(shí)時(shí)間。
所述獲取發(fā)送模塊61獲取所述平均網(wǎng)絡(luò)延時(shí)時(shí)間時(shí),具體通過記錄向所述第二設(shè)備發(fā)送所述網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求的發(fā)送時(shí)間、接收到所述第二設(shè)備發(fā)送的網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)的接收時(shí)間;根據(jù)所述發(fā)送時(shí)間、所述接收時(shí)間以及所記錄的所述發(fā)送時(shí)間和接收時(shí)間的數(shù)量,計(jì)算得到所述平均網(wǎng)絡(luò)延時(shí)時(shí)間;其中,所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)中包含所述第二設(shè)備的解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及所述播放延時(shí)時(shí)間。
進(jìn)一步的,考慮到在實(shí)際應(yīng)用中,遇到暫停播放、恢復(fù)播放和快進(jìn)快退等操作情景,本實(shí)施例提供的裝置60還可以包括:接收模塊,用于接收所述第二設(shè)備發(fā)送的暫停播放命令。
相應(yīng)的,所述獲取發(fā)送模塊61,還用于向所述第二設(shè)備發(fā)送暫停播放響應(yīng)和靜默音頻數(shù)據(jù);所述圖像播放模塊62,還用于暫停播放所述圖像。
在恢復(fù)播放時(shí),所述接收模塊還用于接收所述第二設(shè)備發(fā)送的恢復(fù)播放命令;所述獲取發(fā)送模塊61還用于向所述第二設(shè)備發(fā)送恢復(fù)播放響應(yīng),所述圖像播放模塊62還用于恢復(fù)播放所述圖像。
在快進(jìn)或快退時(shí),接收模塊用于接收所述第二設(shè)備發(fā)送的拖動(dòng)命令;所述拖動(dòng)命令中包含快進(jìn)命令或快退命令;所述快進(jìn)命令用于快進(jìn)播放所述圖像,所述快退命令用于快退播放所述圖像;所述獲取發(fā)送模塊61,還用于向所述第二設(shè)備發(fā)送拖動(dòng)響應(yīng);根據(jù)所述拖動(dòng)命令,重新通過系統(tǒng)錄音獲取所述音頻數(shù)據(jù)并發(fā)送給所述第二設(shè)備。
需要說明的是,在本地獲取所述音頻數(shù)據(jù)之前,所述接收模塊用于接收所述第二設(shè)備發(fā)送的同步連接建立請(qǐng)求;其中,所述同步連接建立請(qǐng)求中包含所述第二設(shè)備的IP地址信息和端口信息;連接建立模塊,用于根據(jù)所述IP地址信息和端口信息,建立與所述第二設(shè)備之間的同步連接。
本實(shí)施例提供的跨設(shè)備的音頻圖像同步播放的裝置,可用于執(zhí)行上述方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
圖7為本發(fā)明實(shí)施例二提供的跨設(shè)備的音頻圖像同步播放的裝置的結(jié)構(gòu)示意圖。如圖7所示,本實(shí)施例提供的跨設(shè)備的音頻圖像同步播放的裝置70可以包括:接收模塊71、緩存模塊72和音頻播放模塊73。
其中,接收模塊71,用于接收第一設(shè)備發(fā)送的音頻數(shù)據(jù);
緩存模塊72,用于對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼并緩存;
音頻播放模塊73,用于在到達(dá)預(yù)設(shè)的緩存延時(shí)時(shí)間后播放所述音頻數(shù)據(jù)。
在實(shí)際應(yīng)用中,本實(shí)施例提供的裝置70還包括:計(jì)時(shí)模塊,用于在所述緩存模塊72對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼的同時(shí),計(jì)時(shí)得到解碼延時(shí)時(shí)間;所述解碼延時(shí)時(shí)間是所述第二設(shè)備對(duì)所述音頻數(shù)據(jù)的第一個(gè)PCM數(shù)據(jù)包進(jìn)行解碼所用的時(shí)間。
進(jìn)一步的,所述接收模塊71還用于接收所述第一設(shè)備發(fā)送的網(wǎng)絡(luò)發(fā)送延時(shí)請(qǐng)求;所述裝置70還包括:發(fā)送模塊,用于向所述第一設(shè)備發(fā)送網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng);其中,所述網(wǎng)絡(luò)發(fā)送延時(shí)響應(yīng)中包含所述第二設(shè)備的所述解碼延時(shí)時(shí)間、所述緩存延時(shí)時(shí)間以及播放延時(shí)時(shí)間。
進(jìn)一步的,由于有時(shí)候網(wǎng)絡(luò)不穩(wěn)定或發(fā)生阻塞,發(fā)送的音頻數(shù)據(jù)沒有及時(shí)到達(dá)第二設(shè)備,致使第二設(shè)備緩存的音頻數(shù)據(jù)播放完,當(dāng)網(wǎng)絡(luò)恢復(fù)時(shí),阻塞的音頻數(shù)據(jù)到達(dá)時(shí),已經(jīng)晚于相對(duì)應(yīng)的圖像,這時(shí)需要判斷是否延遲,如果延遲則丟棄,直至同步時(shí)播放。
在本實(shí)施例中,所述計(jì)時(shí)模塊還用于:從所述播放模塊73開始播放所述音頻數(shù)據(jù)時(shí)記錄系統(tǒng)時(shí)間P;每播放一個(gè)所述音頻數(shù)據(jù)的PCM數(shù)據(jù)包計(jì)時(shí)統(tǒng)計(jì)播放時(shí)間其中,α為所述音頻數(shù)據(jù)的采樣率,β為所述音頻數(shù)據(jù)的編碼幀長(zhǎng),qi表示播放第i個(gè)所述PCM數(shù)據(jù)包所用的時(shí)間;所述裝置70還包括:判斷模塊,用于根據(jù)所述系統(tǒng)時(shí)間P和所述播放時(shí)間Qn判斷是否播放所述當(dāng)前的PCM數(shù)據(jù)包。
其中,所述判斷模塊具體用于:若判斷則丟棄當(dāng)前的PCM數(shù)據(jù)包;若判斷則播放當(dāng)前PCM數(shù)據(jù)包;更新所述播放時(shí)間為其中,α為音頻采樣率,β為編碼幀長(zhǎng)。
進(jìn)一步的,考慮到在實(shí)際應(yīng)用中,遇到暫停播放、恢復(fù)播放和快進(jìn)快退等操作情景,本實(shí)施例提供的裝置70還可以包括:發(fā)送模塊,用于向所述第一設(shè)備發(fā)送暫停播放命令;所述接收模塊71還用于接收所述第一設(shè)備發(fā)送的暫停播放響應(yīng)以及靜默音頻數(shù)據(jù);所述音頻播放模塊73還用于播放所述靜默音頻數(shù)據(jù)。
在恢復(fù)播放時(shí),所述發(fā)送模塊還用于向所述第一設(shè)備發(fā)送恢復(fù)播放命令;所述接收模塊71還用于接收所述第一設(shè)備發(fā)送的恢復(fù)播放響應(yīng),所述音頻播放模塊73還用于恢復(fù)播放所述音頻數(shù)據(jù)。
在快進(jìn)或快退時(shí),發(fā)送模塊用于向所述第一設(shè)備發(fā)送拖動(dòng)命令,所述拖動(dòng)命令中包含快進(jìn)命令或快退命令;所述接收模塊71,還用于接收所述第一設(shè)備發(fā)送的拖動(dòng)響應(yīng);所述緩存模塊72,還用于清空緩存的所述音頻數(shù)據(jù);所述接收模塊71還用于重新接收所述第一設(shè)備發(fā)送的所述音頻數(shù)據(jù);所述緩存模塊72還用于緩存所述接收模塊重新接收的所述音頻數(shù)據(jù)。
需要說明的是,在接收第一設(shè)備發(fā)送的音頻數(shù)據(jù)之前,發(fā)送模塊用于向所述第一設(shè)備發(fā)送同步連接建立請(qǐng)求;其中,所述同步連接建立請(qǐng)求中包含所述第二設(shè)備的IP地址信息和端口信息;所述同步連接建立請(qǐng)求用于請(qǐng)求與所述第一設(shè)備之間建立同步連接。
本實(shí)施例提供的跨設(shè)備的音頻圖像同步播放的裝置,可用于執(zhí)行上述方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
本發(fā)明還提供一種跨設(shè)備的音頻圖像同步播放的系統(tǒng)。本實(shí)施例提供的系統(tǒng)包括如上述裝置實(shí)施例一所提供的跨設(shè)備的音頻圖像同步播放的裝置60,以及如上述裝置實(shí)施例二提供的跨設(shè)備的音頻圖像同步播放的裝置70,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。