本發明涉及互聯網直播領域,具體涉及了一種音視頻同步播放的方法及終端。
背景技術:
隨著互聯網的發展與普及,視頻直播正在越來越多的應用到我們的生活中。在此類應用中,不同時刻網絡的吞吐量、傳輸延時等情況是不斷變化的,這使得視頻數據與其對應的音頻數據很難同時到達接收端,容易產生“唇音不同步”的現象。
現有技術中,常見的同步方法是,當接收的音頻數據可播放時間大于預設值時,開始播放音頻與視頻數據。但是,以音頻/視頻其中一方為基準來控制同步播放的話,容易出現單方面卡頓的情況。
技術實現要素:
本發明實施例提供了一種音視頻同步播放的方法及終端,能夠根據音頻的可播放數據和視頻的可播放數據調整音視頻播放進度,從而保證音視頻同步播放。
本發明實施例第一方面公開了一種音視頻同步的方法,所述方法包括:
獲取音頻數據可播放的時長;
獲取視頻數據可播放的時長;
若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。
結合第一方面,在第一方面的第一種可能的實現方式中,所述方法還包括:
若所述音頻數據可播放的時長大于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到視頻數據包;
若接收到所述視頻數據包,則判斷接收到的視頻數據包的首幀待播放視頻的時間戳與待播放的音頻的時間戳是否匹配;
若所述首幀待播放視頻的時間戳與所述待播放的音頻的時間戳相匹配,則進行音視頻同步播放。
結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述方法還包括:
若所述首幀待播放視頻的時間戳與待播放的音頻的時間戳不匹配,則計算所述首幀待播放視頻的時間戳與待播放的音頻的時間戳之間的時間差;
若所述首幀待播放視頻的時間戳晚于所述待播放的音頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;
跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述接收到的視頻數據包同步播放。
結合第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,所述方法還包括:
若所述首幀待播放視頻的時間戳早于所述待播放的音頻的時間戳,則根據所述時間差長度的視頻確定目標視頻時間點;
跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述待播放的音頻同步播放。
結合第一方面,在第一方面的第四種可能的實現方式中,所述方法還包括:
若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則檢測是否接收到音頻數據包;
若接收到所述音頻數據包,則判斷接收到的音頻數據包的首幀待播放音頻的時間戳與待播放的視頻的時間戳是否匹配;
若所述首幀待播放音頻的時間戳與所述待播放的視頻的時間戳相匹配,則進行音視頻同步播放。
結合第一方面的第四種可能的實現方式,在第一方面的第五種可能的實現方式中,所述方法還包括:
若所述首幀待播放音頻的時間戳與待播放的視頻的時間戳不匹配,則計算所述首幀待播放音頻的時間戳與待播放的視頻的時間戳之間的時間差;
若所述首幀待播放音頻的時間戳晚于所述待播放的視頻的時間戳,則根據所述時間差長度的視頻確定目標音頻時間點;
跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述接收到的音頻數據包同步播放。
結合第一方面的第五種可能的實現方式,在第一方面的第六種可能的實現方式中,所述方法還包括:
若所述首幀待播放音頻的時間戳早于所述待播放的視頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;
跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述待播放的視頻同步播放。
結合第一方面,在第一方面的第七種可能的實現方式中,所述方法還包括:
若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到新的音頻數據包或視頻數據包;
若接收到新的音頻數據包或視頻數據包,則根據接收到新的音頻數據包或視頻數據包確定音頻數據可播放的時長或視頻數據可播放的時長。
本發明第二方面公開了一種終端,所述終端包括:
獲取單元,用于獲取音頻數據可播放的時長;
所述獲取單元,用于獲取視頻數據可播放的時長;
播放單元,用于若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。
結合第二方面,在第二方面的第一種可能的實現方式中,所述終端還包括第一檢測單元和第一判斷單元:
所述第一檢測單元,用于若所述音頻數據可播放的時長大于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到視頻數據包;
所述第一判斷單元,用于若接收到所述視頻數據包,則判斷接收到的視頻數據包的首幀待播放視頻的時間戳與待播放的音頻的時間戳是否匹配;
所述播放單元,用于若所述首幀待播放視頻的時間戳與所述待播放的音頻的時間戳相匹配,則進行音視頻同步播放。
結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,所述終端還包括第一計算單元和第一確定單元;
所述第一計算單元,用于若所述首幀待播放視頻的時間戳與待播放的音頻的時間戳不匹配,則計算所述首幀待播放視頻的時間戳與待播放的音頻的時間戳之間的時間差;
所述第一確定單元,用于若所述首幀待播放視頻的時間戳晚于所述待播放的音頻的時間戳,則根據所述時間差長度的音頻以確定目標音頻時間點;
所述播放單元,用于跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述接收到的視頻數據包同步播放。
結合第二方面的第二種可能的實現方式,在第二方面的第三種可能的實現方式中,所述第一確定單元,用于若所述首幀待播放視頻的時間戳早于所述待播放的音頻的時間戳,則根據所述時間差長度的視頻確定目標視頻時間點;
所述播放單元,用于跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述待播放的音頻同步播放。
結合第二方面,在第二方面的第四種可能的實現方式中,所述終端還包括第二檢測單元和第二判斷單元:
所述第二檢測單元,用于若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則檢測是否接收到音頻數據包;
所述第二判斷單元,用于若接收到所述音頻數據包,則判斷接收到的音頻數據包的首幀待播放音頻的時間戳與待播放的視頻的時間戳是否匹配;
所述播放單元,用于若所述首幀待播放音頻的時間戳與所述待播放的視頻的時間戳相匹配,則進行音視頻同步播放。
結合第二方面的第四種可能的實現方式,在第二方面的第五種可能的實現方式中,所述終端還包括地第二計算單元和第二確定單元;
所述第二計算單元,用于若所述首幀待播放音頻的時間戳與待播放的視頻的時間戳不匹配,則計算所述首幀待播放音頻的時間戳與待播放的視頻的時間戳之間的時間差;
所述第二確定單元,用于若所述首幀待播放音頻的時間戳晚于所述待播放的視頻的時間戳,則根據所述時間差長度的視頻確定目標音頻時間點;
所述播放單元,用于跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述接收到的音頻數據包同步播放。
結合第二方面的第五種可能的實現方式,在第二方面的第六種可能的實現方式中,所述終端還包括:
所述第二確定單元,用于若所述首幀待播放音頻的時間戳早于所述待播放的視頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;
所述播放單元,用于跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述待播放的視頻同步播放。
結合第二方面,在第二方面的第七種可能的實現方式中,所述終端還包括第三檢測單元和第三確定單元;
所述第三檢測單元,用于若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到新的音頻數據包或視頻數據包;
所述第三確定單元,用于若接收到新的音頻數據包或視頻數據包,則根據接收到新的音頻數據包或視頻數據包確定音頻數據可播放的時長或視頻數據可播放的時長。
本發明第三方面公開了一種終端,所述終端包括:
存儲有可執行程序代碼的存儲器;
與所述存儲器耦合的處理器;
所述處理器調用所述存儲器中存儲的所述可執行程序代碼,執行如第一方面或第一方面的第一種至第七種中任意一種可能的實現方式所述的方法。
可以看出,本發明實施例的方案中,獲取音頻數據可播放的時長;獲取視頻數據可播放的時長;若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。從而可知,通過實施本發明提供的技術方案,能夠根據音頻的可播放數據和視頻的可播放數據調整音視頻播放進度,從而保證音視頻同步播放。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種音視頻同步的方法的流程示意圖;
圖2為本發明實施例提供的另一種音視頻同步的方法的流程示意圖;
圖3為本發明實施例提供的另一種音視頻同步的方法的流程示意圖;
圖4為本發明實施例提供的一種終端的結構示意圖;
圖5為本發明實施例提供的另一種終端的結構示意圖;
圖6為本發明實施例提供的另一種終端的結構示意圖;
圖7為本發明實施例提供的一種終端的實體裝置結構示意圖。
具體實施方式
本發明實施例提供了一種音視頻同步播放的方法及終端,能夠根據音頻的可播放數據和視頻的可播放數據調整音視頻播放進度,從而保證音視頻同步播放。
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚地描述,顯然,所描述的實施例是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
本發明說明書、權利要求書和附圖中出現的術語“第一”、“第二”和“第三”等是用于區別不同的對象,而并非用于描述特定的順序。此外,術語“包括”和“具有”以及它們任何變形,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統、產品或設備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對于這些過程、方法、產品或設備固有的其它步驟或單元。
在本發明的一個實施例中公開了一種音視頻同步的方法,所述方法包括:獲取音頻數據可播放的時長;獲取視頻數據可播放的時長;若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。
請參閱圖1,圖1是本發明一個實施例提供的一種音視頻同步的方法的流程示意圖。其中,如圖1所示,本發明的一個實施例提供的一種音視頻同步的方法包括以下內容:
S101、獲取音頻數據可播放的時長;
需要指出的是,該方法的執行主體是終端,例如可以為智能手機、平板電腦、智能穿戴式設備、計算機等電子設備。
具體的,終端中可以安裝具備網絡通信功能的客戶端。其中,音頻數據流通過網絡到達客戶端,然后將接收到音頻數據流存入緩沖區。接著根據存儲在緩沖區的音頻數據流的大小確定該音頻數據可播放的時長。
S102、獲取視頻數據可播放的時長;
接收網絡傳輸過來的視頻數據包,將接收到的視頻數據包存儲到緩沖區,根據緩沖區視頻數據包的大小確定視頻數據可播放的時長。
S103、若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。
其中,需要指出的是,該第一預設時長可以是終端默認的長度,也可以是客戶端廠商推薦的時長。
可選的,第一預設時長的長度可以根據網絡情況進行調整。舉例來說,如果網速大于1M/S,那么第一預設時長可以是10s;如果網速小于1M/S,那么第一預設時長可以是20s。
具體來說,網速越快,第一預設時長可以越短;網速越慢,第一預設時長就越長。這樣才能保證音視頻流暢的同步播放。
其中,需要指出的是,如果網速小于預設閾值,那么音視頻就自動切換至暫停狀態。
可選的,終端可以根據音頻數據緩沖的速度和視頻數據緩沖的速度調整音視頻的播放速度。舉例來說,如果音頻數據加載較快、視頻數據加載較慢,可以調整視頻數據加速播放以使得音視頻同步;如果視頻數據加載較快、音頻數據加載較慢,可以調整音頻數據加速播放以使得音視頻同步。
可選的,若所述音頻數據可播放的時長大于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則此時可認為音頻處于可播放的狀態,那么需要檢測是否接收到視頻數據包;
若接收到所述視頻數據包,則判斷接收到的視頻數據包的首幀待播放視頻的時間戳與待播放的音頻的時間戳是否匹配;
若所述首幀待播放視頻的時間戳與所述待播放的音頻的時間戳相匹配,則進行音視頻同步播放;
若所述首幀待播放視頻的時間戳與待播放的音頻的時間戳不匹配,則計算所述首幀待播放視頻的時間戳與待播放的音頻的時間戳之間的時間差;若所述首幀待播放視頻的時間戳晚于所述待播放的音頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述接收到的視頻數據包同步播放。
若所述首幀待播放視頻的時間戳早于所述待播放的音頻的時間戳,則根據所述時間差長度的視頻確定目標視頻時間點;跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述待播放的音頻同步播放。
可選的,若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,此時則認為視頻數據處于可播放的狀態,那么就要檢測是否接收到音頻數據包;
若接收到所述音頻數據包,則判斷接收到的音頻數據包的首幀待播放音頻的時間戳與待播放的視頻的時間戳是否匹配;
若所述首幀待播放音頻的時間戳與所述待播放的視頻的時間戳相匹配,則進行音視頻同步播放。
若所述首幀待播放音頻的時間戳與待播放的視頻的時間戳不匹配,則計算所述首幀待播放音頻的時間戳與待播放的視頻的時間戳之間的時間差;
若所述首幀待播放音頻的時間戳晚于所述待播放的視頻的時間戳,則根據所述時間差長度的視頻確定目標音頻時間點;跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述接收到的音頻數據包同步播放。
若所述首幀待播放音頻的時間戳早于所述待播放的視頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述待播放的視頻同步播放。
可選的,若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,此時認為處于暫停狀態,因為音視頻數據均不能播放,那么就需要檢測是否接收到新的音頻數據包或視頻數據包;若接收到新的音頻數據包或視頻數據包,則根據接收到新的音頻數據包或視頻數據包確定音頻數據可播放的時長或視頻數據可播放的時長。
可以看出,本發明實施例的方案中,獲取音頻數據可播放的時長;獲取視頻數據可播放的時長;若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。從而可知,通過實施本發明提供的技術方案,能夠根據音頻的可播放數據和視頻的可播放數據調整音視頻播放進度,從而保證音視頻同步播放。
請參閱圖2,圖2是本發明的另一個實施例提供的一種音視頻同步的方法的流程示意圖。其中,如圖2所示,本發明的另一個實施例提供的另一種音視頻同步的方法可以包括以下內容:
S201、獲取音頻數據可播放的時長以及視頻數據可播放的時長;
需要指出的是,該方法的執行主體是終端,例如可以為智能手機、平板電腦、智能穿戴式設備、計算機等電子設備。
具體的,終端中可以安裝具備網絡通信功能的客戶端。其中,音頻數據流通過網絡到達客戶端,然后將接收到音頻數據流存入緩沖區。接著根據存儲在緩沖區的音頻數據流的大小確定該音頻數據可播放的時長。接收網絡傳輸過來的視頻數據包,將接收到的視頻數據包存儲到緩沖區,根據緩沖區視頻數據包的大小確定視頻數據可播放的時長。
S202、若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放;
S203、若所述音頻數據可播放的時長大于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到視頻數據包;
其中,需要指出的是,所述音頻數據可播放的時長大于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則可以將當前狀態標記為僅音頻可播放狀態,為了使得音視頻同步,就需要檢測是否繼續接收到視頻的數據包;
S204、若接收到所述視頻數據包,則判斷接收到的視頻數據包的首幀待播放視頻的時間戳與待播放的音頻的時間戳是否匹配;
其中,需要指出的是,一個視頻數據包括會包括一個或多個視頻幀;為了讓音頻是同步,每幀都會有時間戳,從而使得音視頻根據時間戳是否相同以確定是否匹配。
S205、若所述首幀待播放視頻的時間戳與所述待播放的音頻的時間戳相匹配,則進行音視頻同步播放;
S206、若所述首幀待播放視頻的時間戳與待播放的音頻的時間戳不匹配,則計算所述首幀待播放視頻的時間戳與待播放的音頻的時間戳之間的時間差;
S207、若所述首幀待播放視頻的時間戳晚于所述待播放的音頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述接收到的視頻數據包同步播放;
其中,需要指出的是,若所述首幀待播放視頻的時間戳晚于所述待播放的音頻的時間戳,說明音頻播放的慢,就需要跳過一部分音頻數據以確定與視頻時間戳相匹配的音頻時間戳。
S208、若所述首幀待播放視頻的時間戳早于所述待播放的音頻的時間戳,則根據所述時間差長度的視頻確定目標視頻時間點;跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述待播放的音頻同步播放。
可以看出,本發明實施例的方案中擴充了音頻數據可播放視頻數據不可播放的場景。從而可知,當音視頻數據不同步時,根據時間戳調整音視頻數據的播放進度以進行音視頻同步。
請參閱圖3,圖3是本發明的另一個實施例提供的一種音視頻同步的方法的流程示意圖。其中,如圖3所示,本發明的另一個實施例提供的另一種音視頻同步的方法可以包括以下內容:
S301、獲取音頻數據可播放的時長以及視頻數據可播放的時長;
需要指出的是,該方法的執行主體是終端,例如可以為智能手機、平板電腦、智能穿戴式設備、計算機等電子設備。
S302、若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放;
S303、若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則檢測是否接收到音頻數據包;
其中,需要指出的是,若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則可以將當前狀態標記為僅視頻可播放狀態,為了使得音視頻同步,就需要檢測是否繼續接收到音頻的數據包。
S304、若接收到所述音頻數據包,則判斷接收到的音頻數據包的首幀待播放音頻的時間戳與待播放的視頻的時間戳是否匹配;
S305、若所述首幀待播放音頻的時間戳與所述待播放的視頻的時間戳相匹配,則進行音視頻同步播放;
S306、若所述首幀待播放音頻的時間戳與待播放的視頻的時間戳不匹配,則計算所述首幀待播放音頻的時間戳與待播放的視頻的時間戳之間的時間差;
S307、若所述首幀待播放音頻的時間戳晚于所述待播放的視頻的時間戳,則根據所述時間差長度的視頻確定目標音頻時間點;跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述接收到的音頻數據包同步播放;
S308、若所述首幀待播放音頻的時間戳早于所述待播放的視頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;
S309、跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述待播放的視頻同步播放。
S310、若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到新的音頻數據包或視頻數據包;若接收到新的音頻數據包或視頻數據包,則根據接收到新的音頻數據包或視頻數據包確定音頻數據可播放的時長或視頻數據可播放的時長。
可以看出,本發明實施例的方案中擴充了視頻數據可播放音頻數據不可播放的場景。從而可知,當音視頻數據不同步時,可調整視頻數據的播放進度以進行音視頻同步。
請參閱圖4,圖4是本發明的一個實施例提供的一種終端的結構示意圖。其中,如圖4所示,本發明的一個實施例提供的一種終端400,其中,該終端可以是智能手機、平板電腦、智能穿戴設備等設備。該終端400包括獲取單元401和播放單元402;
獲取單元401,用于獲取音頻數據可播放的時長;還用于獲取視頻數據可播放的時長;
播放單元402,用于若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。
其中,獲取單元401和播放單元402可以用于執行實施例1中步驟S101至S103所述的方法,具體描述詳見實施例1對所述方法的描述,在此不再贅述。
請參閱圖5,圖5是本發明的一個實施例提供的一種終端的結構示意圖。其中,如圖4所示,本發明的一個實施例提供的一種終端500,其中,該終端可以是智能手機、平板電腦、智能穿戴設備等設備。該終端500包括獲取單元501、播放單元502、第一檢測單元503、第一判斷單元504、第一計算單元505以及第一確定單元506;
獲取單元501,用于獲取音頻數據可播放的時長以及視頻數據可播放的時長;
播放單元502,用于若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放;
第一檢測單元503,用于若所述音頻數據可播放的時長大于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到視頻數據包;
第一判斷單元504,用于若接收到所述視頻數據包,則判斷接收到的視頻數據包的首幀待播放視頻的時間戳與待播放的音頻的時間戳是否匹配;
播放單元502,用于若所述首幀待播放視頻的時間戳與所述待播放的音頻的時間戳相匹配,則進行音視頻同步播放;
第一計算單元505,用于若所述首幀待播放視頻的時間戳與待播放的音頻的時間戳不匹配,則計算所述首幀待播放視頻的時間戳與待播放的音頻的時間戳之間的時間差;
第一確定單元506,用于若所述首幀待播放視頻的時間戳晚于所述待播放的音頻的時間戳,則根據所述時間差長度的音頻以確定目標音頻時間點;
播放單元502,用于跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述接收到的視頻數據包同步播放。
第一確定單元506,還用于若所述首幀待播放視頻的時間戳早于所述待播放的音頻的時間戳,則根據所述時間差長度的視頻確定目標視頻時間點;
播放單元502,用于跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述待播放的音頻同步播放。
其中,獲取單元501、播放單元502、第一檢測單元503、第一判斷單元504、第一計算單元505以及第一確定單元506可以用于執行實施例2中步驟S201至S208所述的方法,具體描述詳見實施例1對所述方法的描述,在此不再贅述。
在圖5的基礎上,終端還可以包括圖6所示的單元。如圖6所示,圖6是本發明的一個實施例提供的一種終端的結構示意圖。其中,如圖6所示,本發明的一個實施例提供的一種終端600,其中,該終端可以是智能手機、平板電腦、智能穿戴設備等設備。該終端600包括獲取單元601、播放單元602、第二檢測單元603、第二判斷單元604、第一計算單元605以及第二確定單元606、第三檢測單元607以及第三判斷單元608;
獲取單元601,用于獲取音頻數據可播放的時長以及視頻數據可播放的時長;
播放單元602,用于若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。
第二檢測單元603,用于若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則檢測是否接收到音頻數據包;
第二判斷單元604,用于若接收到所述音頻數據包,則判斷接收到的音頻數據包的首幀待播放音頻的時間戳與待播放的視頻的時間戳是否匹配;
所述播放單元,用于若所述首幀待播放音頻的時間戳與所述待播放的視頻的時間戳相匹配,則進行音視頻同步播放。
第二計算單元605,用于若所述首幀待播放音頻的時間戳與待播放的視頻的時間戳不匹配,則計算所述首幀待播放音頻的時間戳與待播放的視頻的時間戳之間的時間差;
第二確定單元606,用于若所述首幀待播放音頻的時間戳晚于所述待播放的視頻的時間戳,則根據所述時間差長度的視頻確定目標音頻時間點;
播放單元602,用于跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述接收到的音頻數據包同步播放。
第二確定單元606,用于若所述首幀待播放音頻的時間戳早于所述待播放的視頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;
播放單元602,用于跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述待播放的視頻同步播放。
第三檢測單元607,用于若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到新的音頻數據包或視頻數據包;
第三確定單元608,用于若接收到新的音頻數據包或視頻數據包,則根據接收到新的音頻數據包或視頻數據包確定音頻數據可播放的時長或視頻數據可播放的時長。
其中,獲取單元601、播放單元602、第二檢測單元603、第二判斷單元604、第一計算單元605以及第二確定單元606、第三檢測單元607以及第三判斷單元608可以用于執行實施例3中步驟S301至S310所述的方法,具體描述詳見實施例3對所述方法的描述,在此不再贅述。
請參閱圖7,在本發明的另一個實施例中,提供一種終端。所述終端700包括CPU701、存儲器702、總線703,顯示屏704等硬件。其中,該終端700可以是智能手機、平板電腦、智能穿戴設備等設備。
其中,CPU701執行預先存儲在存儲器702中的程序,該執行過程具體包括:
獲取音頻數據可播放的時長;
獲取視頻數據可播放的時長;
若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。
可選的,所述執行過程還包括:
若所述音頻數據可播放的時長大于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到視頻數據包;
若接收到所述視頻數據包,則判斷接收到的視頻數據包的首幀待播放視頻的時間戳與待播放的音頻的時間戳是否匹配;
若所述首幀待播放視頻的時間戳與所述待播放的音頻的時間戳相匹配,則進行音視頻同步播放。
可選的,所述執行過程還包括:
若所述首幀待播放視頻的時間戳與待播放的音頻的時間戳不匹配,則計算所述首幀待播放視頻的時間戳與待播放的音頻的時間戳之間的時間差;
若所述首幀待播放視頻的時間戳晚于所述待播放的音頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;
跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述接收到的視頻數據包同步播放。
可選的,所述執行過程還包括:
若所述首幀待播放視頻的時間戳早于所述待播放的音頻的時間戳,則根據所述時間差長度的視頻確定目標視頻時間點;
跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述待播放的音頻同步播放。
可選的,所述執行過程還包括:
若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則檢測是否接收到音頻數據包;
若接收到所述音頻數據包,則判斷接收到的音頻數據包的首幀待播放音頻的時間戳與待播放的視頻的時間戳是否匹配;
若所述首幀待播放音頻的時間戳與所述待播放的視頻的時間戳相匹配,則進行音視頻同步播放。
可選的,所述執行過程還包括:
若所述首幀待播放音頻的時間戳與待播放的視頻的時間戳不匹配,則計算所述首幀待播放音頻的時間戳與待播放的視頻的時間戳之間的時間差;
若所述首幀待播放音頻的時間戳晚于所述待播放的視頻的時間戳,則根據所述時間差長度的視頻確定目標音頻時間點;
跳過所述目標視頻時間點之前的視頻數據,從所述目標視頻時間點開始與所述接收到的音頻數據包同步播放。
可選的,所述執行過程還包括:
若所述首幀待播放音頻的時間戳早于所述待播放的視頻的時間戳,則根據所述時間差長度的音頻確定目標音頻時間點;
跳過所述目標音頻時間點之前的音頻數據,從所述目標音頻時間點開始與所述待播放的視頻同步播放。
可選的,所述執行過程還包括:
若所述音頻數據可播放的時長小于所述第一預設時長且所述視頻數據可播放的時長小于所述第一預設時長,則檢測是否接收到新的音頻數據包或視頻數據包;
若接收到新的音頻數據包或視頻數據包,則根據接收到新的音頻數據包或視頻數據包確定音頻數據可播放的時長或視頻數據可播放的時長。
可以看出,本發明實施例的方案中,獲取音頻數據可播放的時長;獲取視頻數據可播放的時長;若所述音頻數據可播放的時長大于第一預設時長且所述視頻數據可播放的時長大于所述第一預設時長,則進行音視頻同步播放。從而可知,通過實施本發明提供的技術方案,能夠根據音頻的可播放數據和視頻的可播放數據調整音視頻播放進度,從而保證音視頻同步播放。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置,可通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。