專利名稱:媒體文件的播放方法、電子設(shè)備和虛擬機(jī)架構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及媒體文件的播放方法、電子設(shè)備和虛擬機(jī)架構(gòu)。
背景技術(shù):
在當(dāng)前的電子設(shè)備中,存在具有多個(gè)操作系統(tǒng)和多個(gè)硬件系統(tǒng)的混合(Hybrid)系統(tǒng),另外,還存在在一個(gè)硬件系統(tǒng)上利用虛擬機(jī)來(lái)加載多個(gè)操作系統(tǒng)的虛擬機(jī)架構(gòu)。例如,對(duì)于某些電子設(shè)備,是在Windows系統(tǒng)下利用虛擬機(jī)來(lái)加載Android系統(tǒng)。在這樣的多系統(tǒng)的電子設(shè)備中,在某些系統(tǒng)下的媒體文件的播放器可能不能得到真實(shí)的電子設(shè)備的硬件支持,因此具有較低的處理性能,導(dǎo)致很多應(yīng)用的運(yùn)行性能也比較低,典型地就是播放視頻。因此,需要改進(jìn)的媒體文件的播放方法,能夠提高在具有多個(gè)系統(tǒng)的電子設(shè)備中媒體文件的播放性能。
發(fā)明內(nèi)容
因此,針對(duì)上述現(xiàn)有技術(shù)中存在的問(wèn)題和需求做出本發(fā)明。本發(fā)明實(shí)施例的目的是提供一種媒體文件的播放方法、電子設(shè)備和虛擬架構(gòu),其能夠在不同系統(tǒng)中分開(kāi)解碼媒體文件的音頻和視頻,并以添加的標(biāo)簽的形式實(shí)現(xiàn)同步。根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種媒體文件的播放方法,包括:在第一系統(tǒng)中播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到第二系統(tǒng),所述第二系統(tǒng)對(duì)所述視頻文件進(jìn)行解碼;接收所述第二系統(tǒng)解碼后的視頻文件;根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。在上述方法中,所述根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件的步驟進(jìn)一步包括:獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度;以及所述接收所述第二系統(tǒng)解碼后的視頻文件的步驟進(jìn)一步包括:在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī);當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),從第二系統(tǒng)接收解碼后的視頻文件;其中,所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在上述方法中,所述根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步的步驟之后進(jìn)一步包括:將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài);且所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括:檢測(cè)所述狀態(tài)機(jī)的狀態(tài);在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在上述方法中,所述第二系統(tǒng)中對(duì)每一時(shí)間周期的視頻文件進(jìn)行解碼的時(shí)間長(zhǎng)度等于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度減去所述狀態(tài)機(jī)的處理時(shí)間和每一時(shí)間周期的視頻文件的轉(zhuǎn)發(fā)時(shí)間。
在上述方法中,所述流媒體文件的每一時(shí)間周期是所述流媒體文件的一幀時(shí)間周期。在上述方法中,所述第一系統(tǒng)和所述第二系統(tǒng)是同一電子設(shè)備的第一操作系統(tǒng)和第二操作系統(tǒng)。在上述方法中,所述第一系統(tǒng)和所述第二系統(tǒng)分別是第一電子設(shè)備的第一操作系統(tǒng)和第二電子設(shè)備的第二操作系統(tǒng)。根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種電子設(shè)備,包括第一系統(tǒng)和第二系統(tǒng),該電子設(shè)備進(jìn)一步包括控制器,所述控制器配置為控制第一系統(tǒng)以播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到第二系統(tǒng),并控制所述第二系統(tǒng)以對(duì)所述視頻文件進(jìn)行解碼;控制所述第一系統(tǒng)接收所述第二系統(tǒng)解碼后的視頻文件;和根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。在上述電子設(shè)備中,所述控制器根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件進(jìn)一步包括:所述控制器獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度;以及所述控制器控制所述第一系統(tǒng)接收所述第二系統(tǒng)解碼后的視頻文件進(jìn)一步包括:所述控制器在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī);當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),控制從第二系統(tǒng)接收解碼后的視頻文件;其中,所述控制器控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在上述電子設(shè)備中,所述控制器根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放以使得播放時(shí)音頻和視頻同步之后進(jìn)一步包括:所述控制器將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài);且所述控制器控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括:所述控制器檢測(cè)所述狀態(tài)機(jī)的狀態(tài);以及在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在上述電子設(shè)備中,所述第二系統(tǒng)中對(duì)每一時(shí)間周期的視頻文件進(jìn)行解碼的時(shí)間長(zhǎng)度等于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度減去所述狀態(tài)機(jī)的處理時(shí)間和每一時(shí)間周期的視頻文件的轉(zhuǎn)發(fā)時(shí)間。在上述電子設(shè)備中,所述流媒體文件的每一時(shí)間周期是所述流媒體文件的一幀時(shí)間周期。根據(jù)本發(fā)明實(shí)施例的又一方面,提供了一種虛擬機(jī)架構(gòu),應(yīng)用于一電子設(shè)備,其中,所述電子設(shè)備具有第一操作系統(tǒng)和第二操作系統(tǒng),并在所述第一操作系統(tǒng)下利用虛擬機(jī)加載所述第二操作系統(tǒng),且所述第二操作系統(tǒng)作為前臺(tái)系統(tǒng)運(yùn)行,而所述第一操作系統(tǒng)作為后臺(tái)系統(tǒng)運(yùn)行,所述虛擬機(jī)架構(gòu)包括控制單元,所述控制單元配置為控制所述第一操作系統(tǒng)以播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到所述第二操作系統(tǒng),并控制所述第二操作系統(tǒng)以對(duì)所述視頻文件進(jìn)行解碼;控制所述第一操作系統(tǒng)接收所述第二操作系統(tǒng)解碼后的視頻文件;和根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。
在上述虛擬機(jī)架構(gòu)中,所述控制單元根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件進(jìn)一步包括:所述控制單元獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度;以及所述控制單元控制所述第一系統(tǒng)接收所述第二系統(tǒng)解碼后的視頻文件進(jìn)一步包括:所述控制單元在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī);當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),控制從第二系統(tǒng)接收解碼后的視頻文件;其中,所述控制單元控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在上述虛擬機(jī)架構(gòu)中,所述控制單元根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放以使得播放時(shí)音頻和視頻同步之后進(jìn)一步包括:所述控制單元將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài);且所述控制單元控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括:所述控制單元檢測(cè)所述狀態(tài)機(jī)的狀態(tài);以及在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。通過(guò)根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法、電子設(shè)備和虛擬機(jī)架構(gòu),可以實(shí)現(xiàn)媒體文件的音視頻的單獨(dú)解碼和同步播放,從而提高了解碼效率,增強(qiáng)了播放性能。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法的示意性流程圖;圖2是示出根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)架構(gòu)的示意性框圖;圖3是根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法在虛擬機(jī)架構(gòu)中的具體應(yīng)用示例的示例性流程圖;圖4是示出了根據(jù)本發(fā)明實(shí)施例的電子設(shè)備的示意性框圖。
具體實(shí)施例方式下面,將結(jié)合附圖詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法、電子設(shè)備和虛擬機(jī)架構(gòu)。如上所述,對(duì)于具有多個(gè)系統(tǒng)的電子設(shè)備來(lái)說(shuō),由于存在某個(gè)系統(tǒng)不能夠得到電子設(shè)備的硬件的充分支持的情況,因此為了提高媒體文件的播放性能,通常采用音視頻單獨(dú)解碼的技術(shù)。即,音頻在該系統(tǒng)內(nèi)解碼,而視頻幀數(shù)據(jù)則被傳遞到另一能夠得到硬件的充分支持的系統(tǒng)進(jìn)行解碼。例如,如上述在Windows系統(tǒng)下利用虛擬機(jī)加載Android系統(tǒng)的情況,可以在Android內(nèi)解碼音頻,而在Windows下利用硬件的視頻解碼來(lái)實(shí)現(xiàn)視頻巾貞數(shù)據(jù)的解碼。但是,在這種音視頻分別解碼的情況下,由需要保證音視頻解碼后的數(shù)據(jù)在播放時(shí)能夠同步播放,避免聲音與圖像不匹配和音視頻丟幀等問(wèn)題。對(duì)于該問(wèn)題,可以采用時(shí)間戳的方式來(lái)解決音視頻同步的問(wèn)題,S卩,選擇參考時(shí)鐘,令該參考時(shí)鐘線性遞增,對(duì)音視頻幀數(shù)據(jù)打上時(shí)間戳,播放時(shí)讀取時(shí)間戳,同時(shí)參考當(dāng)前參考時(shí)鐘的時(shí)間來(lái)播放。在播放時(shí),以音頻數(shù)據(jù)為基準(zhǔn),如果遇到音視頻數(shù)據(jù)不匹配,則視頻數(shù)據(jù)可視情況丟幀。但是,當(dāng)該方案應(yīng)用于如上所述的在Windows系統(tǒng)下利用虛擬機(jī)加載Android系統(tǒng)的情況時(shí),由于Android系統(tǒng)的內(nèi)部時(shí)鐘不穩(wěn)定,會(huì)時(shí)快時(shí)慢,因此這種采用時(shí)間戳的方案也會(huì)造成播放不穩(wěn)定的問(wèn)題。根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種媒體文件的播放方法,包括:在第一系統(tǒng)中播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到第二系統(tǒng),所述第二系統(tǒng)對(duì)所述視頻文件進(jìn)行解碼;接收所述第二系統(tǒng)解碼后的視頻文件;根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。在上述根據(jù)本發(fā)明實(shí)施例的方法中,在對(duì)流媒體文件的視頻文件和音頻文件進(jìn)行分別解碼時(shí),為同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽,并根據(jù)該標(biāo)簽來(lái)對(duì)解碼后的音視頻文件進(jìn)行同步播放,從而避免了系統(tǒng)的內(nèi)部時(shí)鐘不穩(wěn)定所造成的播放不穩(wěn)定的問(wèn)題。并且,這里,由于是在解碼之前對(duì)流媒體文件例如通過(guò)解封裝來(lái)分別獲得視頻文件和音頻文件,可以保證該獲得的視頻文件和音頻文件在時(shí)間上嚴(yán)格同步,從而對(duì)于每一時(shí)間周期的音頻文件和視頻文件來(lái)說(shuō),其添加的標(biāo)簽也可以完全對(duì)應(yīng)。這樣,在對(duì)視頻文件和音頻文件分別進(jìn)行解碼之后,之前屬于同一時(shí)間周期的音視頻文件解碼之后的音視頻文件將具有相同的標(biāo)簽,因此,通過(guò)標(biāo)簽的匹配來(lái)進(jìn)行播放就可以保證音視頻文件的同步播放。在根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法中,該標(biāo)簽可以是簡(jiǎn)單的序號(hào)標(biāo)簽,因?yàn)槭窍蛎恳粫r(shí)間周期的視頻文件和音頻文件添加標(biāo)簽,在添加標(biāo)簽的過(guò)程當(dāng)中,已經(jīng)預(yù)先考慮了視頻文件和音頻文件的時(shí)間屬性,因此該添加的標(biāo)簽可以不必是時(shí)間戳,這也簡(jiǎn)化了標(biāo)簽本身的配置,同時(shí)提高了系統(tǒng)運(yùn)行的效能。圖1是根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法的示意性流程圖。如圖1所示,該媒體文件的播放方法包括:S1,在第一系統(tǒng)中播放一流媒體文件;S2,根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;S3,向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;S4,對(duì)音頻文件進(jìn)行解碼;S5,將所述視頻文件發(fā)送到第二系統(tǒng),所述第二系統(tǒng)對(duì)所述視頻文件進(jìn)行解碼;S6,接收所述第二系統(tǒng)解碼后的視頻文件;S7,根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。在上述媒體文件的播放方法中,所述根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件的步驟進(jìn)一步包括:獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度;以及所述接收所述第二系統(tǒng)解碼后的視頻文件的步驟進(jìn)一步包括:在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī);當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),從第二系統(tǒng)接收解碼后的視頻文件;其中,所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在如上所述的Window系統(tǒng)和Android系統(tǒng)的虛擬機(jī)架構(gòu)中,由于Android系統(tǒng)的內(nèi)部時(shí)鐘不穩(wěn)定,因此當(dāng)基于Android系統(tǒng)的內(nèi)部時(shí)鐘進(jìn)行音視頻的播放時(shí),也會(huì)相應(yīng)地造成播放的不穩(wěn)定。對(duì)于其它采用多個(gè)系統(tǒng)的電子設(shè)備來(lái)說(shuō),不能夠得到硬件的充分支持的系統(tǒng)相對(duì)于能夠得到硬件的充分支持的系統(tǒng)來(lái)說(shuō),其時(shí)鐘的穩(wěn)定性會(huì)相對(duì)較差。因此,在根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法中,除了將要播放的流媒體文件的視頻文件發(fā)送到另一系統(tǒng)進(jìn)行解碼以外,也可以由該另一系統(tǒng)進(jìn)行時(shí)鐘控制,以實(shí)現(xiàn)同步之后的音視頻文件的穩(wěn)定播放。具體地說(shuō),在根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法中,當(dāng)對(duì)流媒體文件進(jìn)行例如解封裝之類(lèi)的操作以分別獲得視頻文件和音頻文件時(shí),可以進(jìn)一步獲得該視頻文件和音頻文件的文件屬性,例如音視頻類(lèi)型、播放速率、播放尺寸等。特別地,當(dāng)需要由另一系統(tǒng)來(lái)進(jìn)行時(shí)鐘控制時(shí),需要獲得流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度,這樣,也就獲得了相應(yīng)的視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度。當(dāng)在第二系統(tǒng)中進(jìn)行視頻文件的解碼時(shí),通過(guò)第二系統(tǒng)來(lái)控制解碼的每一時(shí)間周期的視頻文件和具有與其相對(duì)應(yīng)的標(biāo)簽的音頻文件的播放定時(shí)。在根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法中,這可以具體地通過(guò)在第一系統(tǒng)中設(shè)置狀態(tài)機(jī)來(lái)實(shí)現(xiàn),即,該第二系統(tǒng)基于視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知該狀態(tài)機(jī)播放流媒體文件,并且僅當(dāng)狀態(tài)機(jī)被通知播放流媒體文件時(shí),其才從第二系統(tǒng)接收解碼后的視頻文件,這樣,就可以保證具有相對(duì)應(yīng)的標(biāo)簽的音視頻文件是在適當(dāng)?shù)亩〞r(shí)在第一系統(tǒng)中進(jìn)行同步播放。這里,本領(lǐng)域技術(shù)人員可以理解,通常情況下,由于音頻解碼比視頻解碼要簡(jiǎn)單得多,即使第二系統(tǒng)能夠得到硬件的充分支持,從而其解碼性能要遠(yuǎn)遠(yuǎn)優(yōu)于第一系統(tǒng)的解碼性能,但是當(dāng)?shù)谝幌到y(tǒng)僅進(jìn)行音頻文件的解碼時(shí),其解碼速度仍然有很大可能要快于第二系統(tǒng)中視頻文件的解碼速度。并且,由于第一系統(tǒng)本身的系統(tǒng)內(nèi)部時(shí)鐘的不穩(wěn)定性,其本身對(duì)于視頻文件或音頻文件的播放都會(huì)時(shí)快時(shí)慢。因此,在上述根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法中,使得第一系統(tǒng)僅當(dāng)其狀態(tài)機(jī)被通知播放流媒體文件時(shí),才從第二系統(tǒng)接收解碼后的視頻文件,也就是說(shuō),使得第一系統(tǒng)僅在適當(dāng)?shù)亩〞r(shí)才有可能實(shí)現(xiàn)音視頻文件的同步播放,從而徹底杜絕了第一系統(tǒng)中流媒體播放的不穩(wěn)定的問(wèn)題。當(dāng)然,本領(lǐng)域技術(shù)人員可以理解,由第二系統(tǒng)來(lái)對(duì)第一系統(tǒng)中的流媒體文件進(jìn)行時(shí)鐘控制也可以有其它的方式,例如,由第二系統(tǒng)在第一系統(tǒng)中設(shè)置一播放定時(shí)器,從而直接控制第一系統(tǒng)中音視頻文件的同步播放的定時(shí)。此時(shí),第二系統(tǒng)不需要按照播放定時(shí)傳送解碼后的視頻文件,也可以正常地將解碼后的視頻文件傳送到第一系統(tǒng),再通過(guò)控制第一系統(tǒng)中的播放定時(shí)器來(lái)實(shí)現(xiàn)媒體文件的播放。但是,由于在這種情況下,仍需要在第二系統(tǒng)中監(jiān)視每一時(shí)間周期的視頻文件的播放時(shí)間,并且還需要對(duì)第一系統(tǒng)中的播放定時(shí)器進(jìn)行控制,其實(shí)現(xiàn)并不會(huì)比上述狀態(tài)機(jī)的方案更加簡(jiǎn)單。并且,由于播放定時(shí)器也會(huì)受到第一系統(tǒng)中不穩(wěn)定的內(nèi)部時(shí)鐘的影響,其播放定時(shí)的精確性也可能低于上述狀態(tài)機(jī)的方案。在上述媒體文件的播放方法中,所述根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步的步驟之后進(jìn)一步包括:將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài);且所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括:檢測(cè)所述狀態(tài)機(jī)的狀態(tài);在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。由第二系統(tǒng)采用狀態(tài)機(jī)來(lái)控制第一系統(tǒng)的播放定時(shí)的另一優(yōu)點(diǎn)在于,可以通過(guò)狀態(tài)機(jī)來(lái)隨時(shí)監(jiān)控第一系統(tǒng)中流媒體文件的播放狀態(tài)。具體地說(shuō),當(dāng)在第一系統(tǒng)中根據(jù)標(biāo)簽來(lái)對(duì)解碼后的每一時(shí)間周期的視頻文件和音頻文件進(jìn)行同步播放之后,可以將狀態(tài)機(jī)設(shè)置為空閑狀態(tài),并且,第二系統(tǒng)可以僅在該狀態(tài)機(jī)為空閑狀態(tài)的情況下才通知第一系統(tǒng)播放該流媒體文件。這樣,當(dāng)對(duì)于某一時(shí)間周期的流媒體文件,在其解碼后的視頻文件和音頻文件的同步播放出現(xiàn)臨時(shí)停滯時(shí),或者由于系統(tǒng)本身的故障或者由于用戶的操作,可以在第一系統(tǒng)中將這種播放的臨時(shí)停滯通知給狀態(tài)機(jī),從而使得第二系統(tǒng)可以通過(guò)狀態(tài)機(jī)是否為空閑狀態(tài)來(lái)知道第一系統(tǒng)中該播放的臨時(shí)停滯,從而不至于無(wú)視第一系統(tǒng)中播放狀態(tài)地控制第一系統(tǒng)中的流媒體文件的播放定時(shí)。也就是說(shuō),通過(guò)檢測(cè)狀態(tài)機(jī)是否處于空閑狀態(tài),第二系統(tǒng)可以根據(jù)第一系統(tǒng)中播放的臨時(shí)停滯來(lái)暫停通知第一系統(tǒng)播放流媒體文件,并且基于該臨時(shí)停滯相應(yīng)地延遲在本系統(tǒng)對(duì)于解碼后的視頻文件的時(shí)鐘控制,以保證流媒體文件的解碼后的音視頻文件的同步播放的定時(shí)的精確性。在上述媒體文件的播放方法中,所述第二系統(tǒng)中對(duì)每一時(shí)間周期的視頻文件進(jìn)行解碼的時(shí)間長(zhǎng)度等于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度減去所述狀態(tài)機(jī)的處理時(shí)間和每一時(shí)間周期的視頻文件的轉(zhuǎn)發(fā)時(shí)間。如上所述,由于在根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法中,優(yōu)選地在第二系統(tǒng)中對(duì)流媒體文件的解碼后的音視頻文件的同步播放的定時(shí)進(jìn)行控制,因此代替在第一系統(tǒng)中對(duì)媒體文件的播放進(jìn)行時(shí)鐘控制,需要通過(guò)對(duì)第二系統(tǒng)中的視頻文件的解碼進(jìn)行時(shí)鐘控制來(lái)實(shí)現(xiàn)這種對(duì)媒體文件的播放的時(shí)鐘控制。這里,本領(lǐng)域技術(shù)人員可以理解,因?yàn)樵诘诙到y(tǒng)中并不會(huì)進(jìn)行流媒體文件的實(shí)際播放而是僅進(jìn)行視頻文件的解碼,因此雖然也可以在第二系統(tǒng)中直接對(duì)流媒體文件的播放進(jìn)行時(shí)鐘控制,但是反而不如對(duì)視頻文件的解碼進(jìn)行時(shí)鐘控制更加直接和精確。因?yàn)樵诘谝幌到y(tǒng)中,實(shí)際上是根據(jù)接收到的每一時(shí)間周期的視頻文件來(lái)進(jìn)行具有相對(duì)應(yīng)的標(biāo)簽的音頻文件的匹配,所以每一時(shí)間周期的視頻文件由第一系統(tǒng)接收到的時(shí)間間隔應(yīng)該等于該視頻文件的時(shí)間長(zhǎng)度。這樣,在第二系統(tǒng)中,對(duì)某一時(shí)間周期的視頻文件進(jìn)行解碼的時(shí)間長(zhǎng)度加上等于狀態(tài)機(jī)的處理時(shí)間和該時(shí)間周期的視頻文件的轉(zhuǎn)發(fā)時(shí)間就應(yīng)該等于視頻文件的該時(shí)間周期的時(shí)間長(zhǎng)度。在上述媒體文件的播放方法中,所述流媒體文件的每一時(shí)間周期是所述流媒體文件的一幀時(shí)間周期。當(dāng)然,本領(lǐng)域技術(shù)人員可以理解,由于流媒體文件的幀時(shí)間周期是流媒體文件自身的基本時(shí)間屬性,因此采用其作為流媒體文件的每一時(shí)間周期對(duì)于系統(tǒng)的實(shí)現(xiàn)最為便捷,但是,根據(jù)其它情況,也可以選擇其它的時(shí)間長(zhǎng)度來(lái)作為流媒體文件的每一時(shí)間周期。例如,因?yàn)榱髅襟w文件的幀時(shí)間周期通常為幾十毫秒的量級(jí),相對(duì)較短,并且可能并不需要以這樣的短時(shí)間周期來(lái)進(jìn)行音視頻的同步,因此,可以在根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法中將流媒體文件的每一時(shí)間周期設(shè)置為秒級(jí),從而減輕系統(tǒng)的負(fù)擔(dān)。并且,本領(lǐng)域技術(shù)人員可以理解,這里流媒體文件的每一時(shí)間周期可以為均勻的時(shí)間周期,也可以為不均勻的時(shí)間周期,其可以根據(jù)需要播放的流媒體文件自身的屬性來(lái)進(jìn)行動(dòng)態(tài)調(diào)整,本發(fā)明的實(shí)施例并不意在對(duì)此進(jìn)行任意限制。在上述媒體文件的播放方法中,所述第一系統(tǒng)和所述第二系統(tǒng)是同一電子設(shè)備的第一操作系統(tǒng)和第二操作系統(tǒng)。在之前已經(jīng)提到,在當(dāng)前的電子設(shè)備中,存在具有多個(gè)操作系統(tǒng)和多個(gè)硬件系統(tǒng)的混合系統(tǒng)架構(gòu),此外還存在在一個(gè)硬件系統(tǒng)上運(yùn)行多個(gè)操作系統(tǒng)的虛擬機(jī)架構(gòu)。根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法既可以應(yīng)用于前一種混合系統(tǒng)架構(gòu),也可以應(yīng)用于后一種虛擬機(jī)架構(gòu),從而解決在無(wú)法得到硬件的充分支持的系統(tǒng)中解碼視頻文件以及內(nèi)部時(shí)鐘不穩(wěn)定的問(wèn)題。圖2是示出根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)架構(gòu)的示意性框圖。如圖2所示,在主機(jī)100上運(yùn)行虛擬機(jī)200,且兩者之間通過(guò)主機(jī)-虛擬機(jī)傳送機(jī)制300連接。當(dāng)虛擬機(jī)200的解碼組件201接收到需要播放的流媒體文件時(shí),將其傳送到解碼功能組件202,之后,解碼功能組件202將要播放的流媒體文件傳送到解碼緩沖器及參數(shù)打包/拆包組件203,以從要播放的流媒體文件獲得視頻文件和音頻文件。其中,視頻文件被發(fā)送到視頻數(shù)據(jù)轉(zhuǎn)發(fā)組件205,并發(fā)送到客戶機(jī)端數(shù)據(jù)傳輸模塊206,以通過(guò)主機(jī)-虛擬機(jī)傳送機(jī)制300傳送到主機(jī)100的主機(jī)端解碼程序101進(jìn)行視頻解碼。音頻文件被發(fā)送到虛擬機(jī)200自身的音頻數(shù)據(jù)解碼組件204,并與解碼后的視頻文件一起發(fā)送到呈現(xiàn)功能組件207,以在虛擬機(jī)系統(tǒng)中進(jìn)行解碼后的流媒體文件的呈現(xiàn)。下面,將以主機(jī)系統(tǒng)為Windows系統(tǒng),且虛擬機(jī)系統(tǒng)為Android系統(tǒng)為例對(duì)根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法的一個(gè)示例進(jìn)行具體描述。圖3是根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法在虛擬機(jī)架構(gòu)中的具體應(yīng)用示例的示例性流程圖。如圖3所示,在步驟Sll,當(dāng)在虛擬機(jī)的Android系統(tǒng)中打開(kāi)一個(gè)視頻流媒體文件時(shí),通過(guò)Android的標(biāo)準(zhǔn)OpenMax框架對(duì)媒體文件進(jìn)行解析。隨后,在步驟S12,對(duì)流媒體文件進(jìn)行分析,以獲取播放屬性,包括音視頻類(lèi)型、播放速率(例如25幀/秒)、播放尺寸等,并對(duì)流媒體文件進(jìn)行分割以分別獲取音頻數(shù)據(jù)和視頻數(shù)據(jù),并且,將對(duì)音視頻數(shù)據(jù)打標(biāo)簽戳的計(jì)數(shù)器初始化。之后,在步驟S13,例如,對(duì)每幀數(shù)據(jù)打標(biāo)簽戳,從而對(duì)計(jì)數(shù)器計(jì)數(shù),下面為了簡(jiǎn)潔,將以一幀數(shù)據(jù)為例進(jìn)行描述,并且本領(lǐng)域技術(shù)人員可以理解,對(duì)于其它幀數(shù)據(jù)或者其它時(shí)間周期的數(shù)據(jù)也都是如此。在步驟13除了對(duì)每幀標(biāo)記計(jì)數(shù)之外,還對(duì)已經(jīng)添加了標(biāo)簽的音頻數(shù)據(jù),例如一幀音頻數(shù)據(jù)解碼。隨后,在步驟S14,將打標(biāo)簽后的視頻幀通過(guò)轉(zhuǎn)發(fā)通道發(fā)送給主機(jī)端,除了視頻幀之外,還將播放信息和計(jì)數(shù)器信息一同轉(zhuǎn)發(fā)到主機(jī)端。在步驟S15,在主機(jī)端對(duì)視頻數(shù)據(jù)進(jìn)行解碼,如上所述,根據(jù)流媒體文件的播放要求,例如25幀/秒播放的視頻,則每幀視頻的播放時(shí)間為40ms,假設(shè)狀態(tài)機(jī)處理和數(shù)據(jù)轉(zhuǎn)發(fā)共消耗時(shí)間5ms,則主機(jī)端應(yīng)該在35ms內(nèi)完成該幀數(shù)據(jù)的視頻解碼。在步驟S16,檢查虛擬機(jī)一端的視頻播放器的狀態(tài)機(jī)的狀態(tài)是否為空閑。在步驟S17,當(dāng)檢查到狀態(tài)機(jī)的狀態(tài)為空閑時(shí),將經(jīng)過(guò)主機(jī)解碼的視頻數(shù)據(jù)發(fā)送到虛擬機(jī)一端,并向狀態(tài)機(jī)通知進(jìn)行播放。在步驟S18,當(dāng)狀態(tài)機(jī)接收到該播放通知時(shí),則通知播放器獲取解碼后的視頻數(shù)據(jù)以進(jìn)行播放。在步驟S19,在從主機(jī)端獲取了解碼后的視頻數(shù)據(jù)以及在虛擬機(jī)一端內(nèi)獲取了解碼后的音頻數(shù)據(jù)之后,檢測(cè)每幀視頻數(shù)據(jù)和音頻數(shù)據(jù)的標(biāo)簽是否一致,并播放具有相同標(biāo)簽的音視頻數(shù)據(jù),以實(shí)現(xiàn)分別解碼的音頻數(shù)據(jù)和視頻數(shù)據(jù)的同步播放。在播放之后,通知狀態(tài)機(jī)將狀態(tài)設(shè)置為空閑,使得可以再次從主機(jī)端接收下一幀的解碼的視頻文件和播放通知。這樣,按照上述流程依次處理每幀數(shù)據(jù),則可以實(shí)現(xiàn)流媒體文件的流程播放。在如圖3所示的整個(gè)處理過(guò)程中,利用主機(jī)端穩(wěn)定的系統(tǒng)時(shí)鐘計(jì)時(shí)來(lái)控制播放,虛擬機(jī)一端只響應(yīng)和處理,從而保證了流媒體文件播放的流暢和音視頻同步。而且,在主機(jī)端可利用硬件進(jìn)行解碼,效率高,并且無(wú)需像虛擬機(jī)系統(tǒng)中那樣做丟幀等異常處理。在上述媒體文件的播放方法中,所述第一系統(tǒng)和所述第二系統(tǒng)分別是第一電子設(shè)備的第一操作系統(tǒng)和第二電子設(shè)備的第二操作系統(tǒng)。這里,本領(lǐng)域技術(shù)人員可以理解,上述媒體文件的播放方法除了應(yīng)用于具有多個(gè)系統(tǒng)的單個(gè)電子設(shè)備之外,也可以應(yīng)用于多個(gè)電子設(shè)備,從而使得例如不具有太強(qiáng)的視頻解碼性能的一個(gè)電子設(shè)備可以利用具有較強(qiáng)的視頻解碼性能的另一電子設(shè)備來(lái)進(jìn)行視頻解碼,并實(shí)現(xiàn)流媒體文件的流程播放。當(dāng)在兩個(gè)獨(dú)立的電子設(shè)備之間實(shí)現(xiàn)上述方法時(shí),代替通過(guò)兩個(gè)操作系統(tǒng)之間的轉(zhuǎn)發(fā)通道進(jìn)行數(shù)據(jù)和命令的傳送,可以通過(guò)兩個(gè)電子設(shè)備之間的通信來(lái)進(jìn)行數(shù)據(jù)和命令的傳送,本領(lǐng)域技術(shù)人員可以理解上述根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法如何應(yīng)用于兩個(gè)單獨(dú)的電子設(shè)備,這里為了簡(jiǎn)潔的緣故便不再贅述。根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種電子設(shè)備,包括第一系統(tǒng)和第二系統(tǒng),該電子設(shè)備進(jìn)一步包括控制器,所述控制器配置為在第一系統(tǒng)中播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到第二系統(tǒng),所述第二系統(tǒng)對(duì)所述視頻文件進(jìn)行解碼;接收所述第二系統(tǒng)解碼后的視頻文件;和根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。圖4是示出了根據(jù)本發(fā)明實(shí)施例的電子設(shè)備的示意性框圖。如圖4所示,電子設(shè)備10包括第一系統(tǒng)11和第二系統(tǒng)12,且進(jìn)一步包括控制器13。該控制器13控制第一系統(tǒng)11以播放一流媒體文件,根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件,向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽,對(duì)音頻文件進(jìn)行解碼,將所述視頻文件發(fā)送到第二系統(tǒng)12,并控制第二系統(tǒng)12以對(duì)所述視頻文件進(jìn)行解碼,控制第一系統(tǒng)11接收第二系統(tǒng)12解碼后的視頻文件,和根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。在上述電子設(shè)備中,所述控制器根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件進(jìn)一步包括:所述控制器獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度;以及所述控制器接收所述第二系統(tǒng)解碼后的視頻文件進(jìn)一步包括:所述控制器在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī);當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),從第二系統(tǒng)接收解碼后的視頻文件;其中,所述控制器控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在上述電子設(shè)備中,所述控制器根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放以使得播放時(shí)音頻和視頻同步之后進(jìn)一步包括:所述控制器將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài);且所述控制器控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括:所述控制器檢測(cè)所述狀態(tài)機(jī)的狀態(tài);以及在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在上述電子設(shè)備中,所述第二系統(tǒng)中對(duì)每一時(shí)間周期的視頻文件進(jìn)行解碼的時(shí)間長(zhǎng)度等于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度減去所述狀態(tài)機(jī)的處理時(shí)間和每一時(shí)間周期的視頻文件的轉(zhuǎn)發(fā)時(shí)間。在上述電子設(shè)備中,所述流媒體文件的每一時(shí)間周期是所述流媒體文件的一幀時(shí)間周期。與上述媒體文件的播放方法類(lèi)似,上述電子設(shè)備中的第一系統(tǒng)和第二系統(tǒng)既可以是混合系統(tǒng)架構(gòu),也可以是虛擬機(jī)架構(gòu),并且,在上面關(guān)于根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法的描述中的各種細(xì)節(jié)也可以等效地應(yīng)用于上述電子設(shè)備,這里為了簡(jiǎn)潔的緣故便不再贅述。根據(jù)本發(fā)明實(shí)施例的又一方面,提供了一種虛擬機(jī)架構(gòu),應(yīng)用于一電子設(shè)備,其中,所述電子設(shè)備具有第一操作系統(tǒng)和第二操作系統(tǒng),并在所述第一操作系統(tǒng)下利用虛擬機(jī)加載所述第二操作系統(tǒng),且所述第二操作系統(tǒng)作為前臺(tái)系統(tǒng)運(yùn)行,而所述第一操作系統(tǒng)作為后臺(tái)系統(tǒng)運(yùn)行,所述虛擬機(jī)架構(gòu)包括控制單元,所述控制單元配置為控制所述第一操作系統(tǒng)以播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到所述第二操作系統(tǒng),并控制所述第二操作系統(tǒng)以對(duì)所述視頻文件進(jìn)行解碼;控制所述第一操作系統(tǒng)接收所述第二操作系統(tǒng)解碼后的視頻文件;和根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。在上述虛擬機(jī)架構(gòu)中,所述控制單元根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件進(jìn)一步包括:所述控制單元獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度;以及所述控制單元控制所述第一系統(tǒng)接收所述第二系統(tǒng)解碼后的視頻文件進(jìn)一步包括:所述控制單元在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī);當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),控制從第二系統(tǒng)接收解碼后的視頻文件;其中,所述控制單元控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。在上述虛擬機(jī)架構(gòu)中,所述控制單元根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放以使得播放時(shí)音頻和視頻同步之后進(jìn)一步包括:所述控制單元將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài);且所述控制單元控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括:所述控制單元檢測(cè)所述狀態(tài)機(jī)的狀態(tài);以及在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。通過(guò)根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法、電子設(shè)備和虛擬機(jī)架構(gòu),可以實(shí)現(xiàn)媒體文件的音視頻的單獨(dú)解碼和同步播放,從而提高了解碼效率,增強(qiáng)了播放性能。本發(fā)明已經(jīng)參考具體實(shí)施例進(jìn)行了詳細(xì)說(shuō)明。然而,很明顯,在不背離本發(fā)明的精神的情況下,本領(lǐng)域技術(shù)人員能夠?qū)?shí)施例執(zhí)行更改和替換。換句話說(shuō),本發(fā)明用說(shuō)明的形式公開(kāi),而不是被限制地解釋。要判斷本發(fā)明的要旨,應(yīng)該考慮所附的權(quán)利要求。
權(quán)利要求
1.一種媒體文件的播放方法,包括: 在第一系統(tǒng)中播放一流媒體文件; 根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件; 向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽; 對(duì)音頻文件進(jìn)行解碼; 將所述視頻文件發(fā)送到第二系統(tǒng),所述第二系統(tǒng)對(duì)所述視頻文件進(jìn)行解碼; 接收所述第二系統(tǒng)解碼后的視頻文件; 根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。
2.如權(quán)利要求1所述的方法,所述根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件的步驟進(jìn)一步包括: 獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度;以及 所述接收所述第二系統(tǒng)解碼后的視頻文件的步驟進(jìn)一步包括: 在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī); 當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),從第二系統(tǒng)接收解碼后的視頻文件;其中,所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。
3.如權(quán)利要求2所述的方法,其中,所述根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步的步驟之后進(jìn)一步包括: 將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài); 且所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括: 檢測(cè)所述狀態(tài)機(jī)的狀態(tài); 在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。
4.如權(quán)利要求2所述的方法,其中,所述第二系統(tǒng)中對(duì)每一時(shí)間周期的視頻文件進(jìn)行解碼的時(shí)間長(zhǎng)度等于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度減去所述狀態(tài)機(jī)的處理時(shí)間和每一時(shí)間周期的視頻文件的轉(zhuǎn)發(fā)時(shí)間。
5.如權(quán)利要求1到4所述的方法,其中,所述流媒體文件的每一時(shí)間周期是所述流媒體文件的一幀時(shí)間周期。
6.如權(quán)利要求1到5所述的方法,其中,所述第一系統(tǒng)和所述第二系統(tǒng)是同一電子設(shè)備的第一操作系統(tǒng)和第二操作系統(tǒng)。
7.如權(quán)利要求1到5所述的方法,其中,所述第一系統(tǒng)和所述第二系統(tǒng)分別是第一電子設(shè)備的第一操作系統(tǒng)和第二電子設(shè)備的第二操作系統(tǒng)。
8.—種電子設(shè)備,包括第一系統(tǒng)和第二系統(tǒng),該電子設(shè)備進(jìn)一步包括控制器, 所述控制器配置為控制第一系統(tǒng)以播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到第二系統(tǒng),并控制所述第二系統(tǒng)以對(duì)所述視頻文件進(jìn)行解碼;控制所述第一系統(tǒng)接收所述第二系統(tǒng)解碼后的視頻文件;和根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。
9.如權(quán)利要求8所述的電子設(shè)備,所述控制器根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件進(jìn)一步包括: 所述控制器獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí)間長(zhǎng)度;以及 所述控制器控制所述第一系統(tǒng)接收所述第二系統(tǒng)解碼后的視頻文件進(jìn)一步包括: 所述控制器在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī);當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),控制從第二系統(tǒng)接收解碼后的視頻文件; 其中,所述控制器控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。
10.如權(quán)利要求9所述的電子設(shè)備,其中,所述控制器根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放以使得播放時(shí)音頻和視頻同步之后進(jìn)一步包括: 所述控制器將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài); 且所述控制器控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括: 所述控制器檢測(cè)所述狀態(tài)機(jī)的狀態(tài);以及在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。
11.如權(quán)利要求9所述的電子設(shè)備,其中,所述第二系統(tǒng)中對(duì)每一時(shí)間周期的視頻文件進(jìn)行解碼的時(shí)間長(zhǎng)度等于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度減去所述狀態(tài)機(jī)的處理時(shí)間和每一時(shí)間周期的視頻文件的轉(zhuǎn)發(fā)時(shí)間。
12.如權(quán)利要求8到11的任意一項(xiàng)所述的電子設(shè)備,其中,所述流媒體文件的每一時(shí)間周期是所述流媒體文件的一幀時(shí)間周期。
13.—種虛擬機(jī)架構(gòu),應(yīng)用于一電子設(shè)備,其中,所述電子設(shè)備具有第一操作系統(tǒng)和第二操作系統(tǒng),并在所述第一操作系統(tǒng)下利用虛擬機(jī)加載所述第二操作系統(tǒng),且所述第二操作系統(tǒng)作為前臺(tái)系統(tǒng)運(yùn)行,而所述第一操作系統(tǒng)作為后臺(tái)系統(tǒng)運(yùn)行,所述虛擬機(jī)架構(gòu)包括控制單元, 所述控制單元配置為控制所述第一操作系統(tǒng)以播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到所述第二操作系統(tǒng),并控制所述第二操作系統(tǒng)以對(duì)所述視頻文件進(jìn)行解碼;控制所述第一操作系統(tǒng)接收所述第二操作系統(tǒng)解碼后的視頻文件;和根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。
14.如權(quán)利要求13所述的虛擬機(jī)架構(gòu),所述控制單元根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件進(jìn)一步包括: 所述控制單元獲取所述流媒體文件的播放屬性,其中所述播放屬性至少包括所述流媒體文件的每一時(shí)間周期的時(shí) 間長(zhǎng)度;以及 所述控制單元控制所述第一系統(tǒng)接收所述第二系統(tǒng)解碼后的視頻文件進(jìn)一步包括:所述控制單元在所述第一系統(tǒng)中設(shè)置狀態(tài)機(jī);當(dāng)所述狀態(tài)機(jī)被通知播放所述流媒體文件時(shí),控制從第二系統(tǒng)接收解碼后的視頻文件; 其中,所述控制單元控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。
15.如權(quán)利要求14所述的虛擬機(jī)架構(gòu),其中,所述控制單元根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放以使得播放時(shí)音頻和視頻同步之后進(jìn)一步包括: 所述控制單元將所述狀態(tài)機(jī)設(shè)置為空閑狀態(tài); 且所述控制單元控制所述第二系統(tǒng)基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件具體包括: 所述控制單元檢測(cè)所述狀態(tài)機(jī)的狀態(tài);以及在所述狀態(tài)機(jī)處于空閑狀態(tài)時(shí),基于所述視頻文件的每一時(shí)間周期的時(shí)間長(zhǎng)度來(lái)通知所述狀態(tài)機(jī)播放所述流媒體文件。
全文摘要
本發(fā)明的實(shí)施例提供了媒體文件的播放方法、電子設(shè)備和虛擬機(jī)架構(gòu)。該媒體文件的播放方法包括在第一系統(tǒng)中播放一流媒體文件;根據(jù)所述流媒體文件分別獲得視頻文件和音頻文件;向同一時(shí)間周期的視頻文件和音頻文件添加標(biāo)簽;對(duì)音頻文件進(jìn)行解碼;將所述視頻文件發(fā)送到第二系統(tǒng),所述第二系統(tǒng)對(duì)所述視頻文件進(jìn)行解碼;接收所述第二系統(tǒng)解碼后的視頻文件;根據(jù)所述標(biāo)簽對(duì)所述流媒體文件進(jìn)行播放,以使得播放時(shí)音頻和視頻同步。通過(guò)根據(jù)本發(fā)明實(shí)施例的媒體文件的播放方法、電子設(shè)備和虛擬機(jī)架構(gòu),可以實(shí)現(xiàn)媒體文件的音視頻的單獨(dú)解碼和同步播放,從而提高了解碼效率,增強(qiáng)了播放性能。
文檔編號(hào)H04N21/443GK103179449SQ201110437598
公開(kāi)日2013年6月26日 申請(qǐng)日期2011年12月23日 優(yōu)先權(quán)日2011年12月23日
發(fā)明者寧曉魁, 郭琦, 尹華菊, 陸見(jiàn)微, 王竹強(qiáng), 雷雪, 盧睿 申請(qǐng)人:聯(lián)想(北京)有限公司