本公開(kāi)涉及終端
技術(shù)領(lǐng)域:
,尤其涉及一種多媒體文件的播放方法及裝置。
背景技術(shù):
:隨著終端技術(shù)的發(fā)展,手機(jī)、平板電腦等終端的應(yīng)用越來(lái)越廣泛。為了給用戶(hù)帶來(lái)更好的用戶(hù)體驗(yàn),終端通常可以播放音樂(lè)、電影等多媒體文件。相關(guān)技術(shù)中,終端通常包括生產(chǎn)商為該終端預(yù)置的多媒體播放框架,該終端可以通過(guò)該多媒體播放框架播放多媒體文件。也即是,當(dāng)該終端接收到多媒體播放指令時(shí),通過(guò)該多媒體播放框架對(duì)待播放的目標(biāo)多媒體文件進(jìn)行解析,得到音頻數(shù)據(jù)和視頻數(shù)據(jù)中的至少一個(gè),之后,可以通過(guò)該多媒體播放框架對(duì)該音頻數(shù)據(jù)或視頻數(shù)據(jù)進(jìn)行解碼并播放,從而播放目標(biāo)多媒體文件。技術(shù)實(shí)現(xiàn)要素:為克服相關(guān)技術(shù)中存在的問(wèn)題,本公開(kāi)提供一種多媒體文件的播放方法及裝置。根據(jù)本公開(kāi)實(shí)施例的第一方面,提供一種多媒體文件的播放方法,所述方法包括:當(dāng)接收到多媒體播放指令時(shí),確定目標(biāo)多媒體文件,所述目標(biāo)多媒體文件為待播放的多媒體文件;通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù),所述多媒體數(shù)據(jù)包括音頻數(shù)據(jù)和視頻數(shù)據(jù)中的至少一個(gè);通過(guò)所述第三方多媒體播放框架中的解碼功能,對(duì)所述多媒體數(shù)據(jù)進(jìn)行解碼,并將解碼后的所述多媒體數(shù)據(jù)存儲(chǔ)至預(yù)置的多媒體播放框架的播放緩沖區(qū),所述播放緩沖區(qū)用于存儲(chǔ)解碼后的所述多媒體數(shù)據(jù);通過(guò)所述預(yù)置的多媒體播放框架,從所述播放緩沖區(qū)中獲取并播放解碼后的所述多媒體數(shù)據(jù),以播放所述目標(biāo)多媒體文件??蛇x地,所述通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)之前,還包括:確定所述目標(biāo)多媒體文件的類(lèi)型;基于所述目標(biāo)多媒體文件的類(lèi)型,判斷所述預(yù)置的多媒體播放框架支持所述目標(biāo)多媒體文件的解析還是所述第三方媒體播放框架支持所述目標(biāo)多媒體文件的解析;當(dāng)所述第三方多媒體播放框架支持所述目標(biāo)多媒體文件的解析時(shí),執(zhí)行所述通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)的步驟??蛇x地,所述通過(guò)所述第三方多媒體播放框架中的解碼功能,對(duì)所述多媒體數(shù)據(jù)進(jìn)行解碼之前,還包括:確定所述多媒體數(shù)據(jù)的格式;基于所述多媒體數(shù)據(jù)的格式,判斷所述預(yù)置的多媒體播放框架支持所述多媒體數(shù)據(jù)的解碼還是所述第三方媒體播放框架支持所述多媒體數(shù)據(jù)的解碼;當(dāng)所述第三方多媒體播放框架支持支持所述多媒體數(shù)據(jù)的解碼時(shí),執(zhí)行所述通過(guò)所述第三方多媒體播放框架中的解碼功能,對(duì)所述多媒體數(shù)據(jù)進(jìn)行解碼的步驟??蛇x地,所述播放緩沖區(qū)包括音頻播放緩沖區(qū)和視頻播放緩沖區(qū)中的至少一個(gè),所述音頻播放緩沖區(qū)用于存儲(chǔ)解碼后的所述音頻數(shù)據(jù),所述視頻播放緩沖區(qū)用于存儲(chǔ)解碼后的所述視頻數(shù)據(jù);相應(yīng)地,所述通過(guò)所述預(yù)置的多媒體播放框架,從所述播放緩沖區(qū)中獲取并播放解碼后的所述多媒體數(shù)據(jù),包括:當(dāng)所述多媒體數(shù)據(jù)包括音頻數(shù)據(jù)時(shí),通過(guò)所述預(yù)置的多媒體播放框架中的音頻輸出服務(wù)AudioFlinger,從所述音頻播放緩沖區(qū)獲取并播放解碼的所述音頻數(shù)據(jù);當(dāng)所述多媒體數(shù)據(jù)包括視頻數(shù)據(jù)時(shí),通過(guò)所述預(yù)置的多媒體播放框架中的視頻輸出服務(wù)SurfaceFlinger,從所述視頻播放緩沖區(qū)獲取并播放解碼后的所述視頻數(shù)據(jù)??蛇x地,所述第三方多媒體播放框架為FFmpeg(FastForwardmovingpictureexpertsgroup,快速動(dòng)態(tài)圖像專(zhuān)家組)。根據(jù)本公開(kāi)實(shí)施例的第二方面,提供一種多媒體文件的播放裝置,所述裝置包括:第一確定模塊,用于當(dāng)接收到多媒體播放指令時(shí),確定目標(biāo)多媒體文件,所述目標(biāo)多媒體文件為待播放的多媒體文件;解析模塊,用于通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù),所述多媒體數(shù)據(jù)包括音頻數(shù)據(jù)和視頻數(shù)據(jù)中的至少一個(gè);解碼模塊,用于通過(guò)所述第三方多媒體播放框架中的解碼功能,對(duì)所述多媒體數(shù)據(jù)進(jìn)行解碼,并將解碼后的所述多媒體數(shù)據(jù)存儲(chǔ)至預(yù)置的多媒體播放框架的播放緩沖區(qū),所述播放緩沖區(qū)用于存儲(chǔ)解碼后的所述多媒體數(shù)據(jù);播放模塊,用于通過(guò)所述預(yù)置的多媒體播放框架,從所述播放緩沖區(qū)中獲取并播放解碼后的所述多媒體數(shù)據(jù),以播放所述目標(biāo)多媒體文件??蛇x地,所述裝置還包括:第二確定模塊,用于確定所述目標(biāo)多媒體文件的類(lèi)型;第一判斷模塊,用于基于所述目標(biāo)多媒體文件的類(lèi)型,判斷所述預(yù)置的多媒體播放框架支持所述目標(biāo)多媒體文件的解析還是所述第三方媒體播放框架支持所述目標(biāo)多媒體文件的解析;第一觸發(fā)模塊,用于當(dāng)所述第三方多媒體播放框架支持所述目標(biāo)多媒體文件的解析時(shí),觸發(fā)所述解析模塊通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)??蛇x地,所述裝置還包括:第三確定模塊,用于確定所述多媒體數(shù)據(jù)的格式;第二判斷模塊,用于基于所述多媒體數(shù)據(jù)的格式,判斷所述預(yù)置的多媒體播放框架支持所述多媒體數(shù)據(jù)的解碼還是所述第三方媒體播放框架支持所述多媒體數(shù)據(jù)的解碼;第二觸發(fā)模塊,用于當(dāng)所述第三方多媒體播放框架支持支持所述多媒體數(shù)據(jù)的解碼時(shí),觸發(fā)所述解碼模塊通過(guò)所述第三方多媒體播放框架中的解碼功能,對(duì)所述多媒體數(shù)據(jù)進(jìn)行解碼??蛇x地,所述播放緩沖區(qū)包括音頻播放緩沖區(qū)和視頻播放緩沖區(qū)中的至少一個(gè),所述音頻播放緩沖區(qū)用于存儲(chǔ)解碼后的所述音頻數(shù)據(jù),所述視頻播放緩沖區(qū)用于存儲(chǔ)解碼后的所述視頻數(shù)據(jù);相應(yīng)地,所述播放模塊包括:第一播放子模塊,用于當(dāng)所述多媒體數(shù)據(jù)包括音頻數(shù)據(jù)時(shí),通過(guò)所述預(yù)置的多媒體播放框架中的音頻輸出服務(wù)AudioFlinger,從所述音頻播放緩沖區(qū)獲取并播放解碼的所述音頻數(shù)據(jù);第二播放子模塊,用于當(dāng)所述多媒體數(shù)據(jù)包括視頻數(shù)據(jù)時(shí),通過(guò)所述預(yù)置的多媒體播放框架中的視頻輸出服務(wù)SurfaceFlinger,從所述視頻播放緩沖區(qū)獲取并播放解碼后的所述視頻數(shù)據(jù)??蛇x地,所述第三方多媒體播放框架為FFmpeg。根據(jù)本公開(kāi)實(shí)施例的第三方面,提供一種多媒體文件的播放裝置,所述裝置包括:處理器;用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為:當(dāng)接收到多媒體播放指令時(shí),確定目標(biāo)多媒體文件,所述目標(biāo)多媒體文件為待播放的多媒體文件;通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù),所述多媒體數(shù)據(jù)包括音頻數(shù)據(jù)和視頻數(shù)據(jù)中的至少一個(gè);通過(guò)所述第三方多媒體播放框架中的解碼功能,對(duì)所述多媒體數(shù)據(jù)進(jìn)行解碼,并將解碼后的所述多媒體數(shù)據(jù)存儲(chǔ)至預(yù)置的多媒體播放框架的播放緩沖區(qū),所述播放緩沖區(qū)用于存儲(chǔ)解碼后的所述多媒體數(shù)據(jù);通過(guò)所述預(yù)置的多媒體播放框架,從所述播放緩沖區(qū)中獲取并播放解碼后的所述多媒體數(shù)據(jù),以播放所述目標(biāo)多媒體文件。本公開(kāi)的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:在本發(fā)明實(shí)施例中,由于第三方多媒體播放框架對(duì)多媒體文件的解析能力以及對(duì)多媒體數(shù)據(jù)的解碼能力通常優(yōu)于預(yù)置的多媒體播放框架,而預(yù)置的多媒體播放框架播放解碼后的多媒體數(shù)據(jù)的能力通常優(yōu)于第三方多媒體播放框架,因此,該終端可以通過(guò)第三方多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)第三方多媒體播放框架對(duì)解析得到的多媒體數(shù)據(jù)進(jìn)行解碼,通過(guò)預(yù)置的多媒體播放框架對(duì)解碼的多媒體數(shù)據(jù)進(jìn)行播放,從而提高了播放多媒體文件的播放效果和成功率。應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開(kāi)。附圖說(shuō)明此處的附圖被并入說(shuō)明書(shū)中并構(gòu)成本說(shuō)明書(shū)的一部分,示出了符合本發(fā)明的實(shí)施例,并與說(shuō)明書(shū)一起用于解釋本發(fā)明的原理。圖1是根據(jù)一示例性實(shí)施例示出的一種多媒體文件的播放方法的流程圖。圖2是根據(jù)一示例性實(shí)施例示出的另一種多媒體文件的播放方法的流程圖。圖3是根據(jù)一示例性實(shí)施例示出的一種多媒體文件的播放裝置的框圖。圖4是根據(jù)一示例性實(shí)施例示出的另一種多媒體文件的播放裝置的框圖。具體實(shí)施方式這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。在對(duì)本公開(kāi)實(shí)施例進(jìn)行詳細(xì)的解釋說(shuō)明之前,先對(duì)本公開(kāi)實(shí)施例的應(yīng)用場(chǎng)景予以介紹。手機(jī)、平板電腦等終端通常可以播放多媒體文件。相關(guān)技術(shù)中,該終端通常包括生產(chǎn)商預(yù)置的多媒體播放框架。當(dāng)接收到多媒體播放指令時(shí),該終端可以通過(guò)該預(yù)置的多媒體播放框架對(duì)待播放的目標(biāo)多媒體文件進(jìn)行解析和解碼,并對(duì)解碼后的數(shù)據(jù)進(jìn)行播放。但由于多媒體文件的類(lèi)型有很多種,而該預(yù)置的多媒體播放框架的解析能力和解碼能力通常較差,因此,該閾值的多媒體播放框架可能難以對(duì)該目標(biāo)多媒體文件進(jìn)行解析和解碼,播放多媒體文件的成功率較低,所以,本公開(kāi)實(shí)施例提供了一種多媒體文件的播放方法。圖1是根據(jù)一示例性實(shí)施例示出的一種多媒體文件的播放方法的流程圖,參照?qǐng)D1,該多媒體文件的播放方法用于終端中,包括以下步驟。在步驟101中,當(dāng)接收到多媒體播放指令時(shí),確定目標(biāo)多媒體文件,該目標(biāo)多媒體文件為待播放的多媒體文件。在步驟102中,通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù),該多媒體數(shù)據(jù)包括音頻數(shù)據(jù)和視頻數(shù)據(jù)中的至少一個(gè)。在步驟103中,通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼,并將解碼后的該多媒體數(shù)據(jù)存儲(chǔ)至預(yù)置的多媒體播放框架的播放緩沖區(qū),該播放緩沖區(qū)用于存儲(chǔ)解碼后的該多媒體數(shù)據(jù)。在步驟104中,通過(guò)該預(yù)置的多媒體播放框架,從該播放緩沖區(qū)中獲取并播放解碼后的該多媒體數(shù)據(jù),以播放該目標(biāo)多媒體文件。在本公開(kāi)實(shí)施例中,由于第三方多媒體播放框架對(duì)多媒體文件的解析能力以及對(duì)多媒體數(shù)據(jù)的解碼能力通常優(yōu)于預(yù)置的多媒體播放框架,而預(yù)置的多媒體播放框架播放解碼后的多媒體數(shù)據(jù)的能力通常優(yōu)于第三方多媒體播放框架,因此,該終端可以通過(guò)第三方多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)第三方多媒體播放框架對(duì)解析得到的多媒體數(shù)據(jù)進(jìn)行解碼,通過(guò)預(yù)置的多媒體播放框架對(duì)解碼的多媒體數(shù)據(jù)進(jìn)行播放,從而提高了播放多媒體文件的播放效果和成功率??蛇x地,通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)之前,還包括:確定該目標(biāo)多媒體文件的類(lèi)型;基于該目標(biāo)多媒體文件的類(lèi)型,判斷該預(yù)置的多媒體播放框架支持該目標(biāo)多媒體文件的解析還是該第三方媒體播放框架支持該目標(biāo)多媒體文件的解析;當(dāng)該第三方多媒體播放框架支持該目標(biāo)多媒體文件的解析時(shí),執(zhí)行該通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)的步驟??蛇x地,通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼之前,還包括:確定該多媒體數(shù)據(jù)的格式;基于該多媒體數(shù)據(jù)的格式,判斷該預(yù)置的多媒體播放框架支持該多媒體數(shù)據(jù)的解碼還是該第三方媒體播放框架支持該多媒體數(shù)據(jù)的解碼;當(dāng)該第三方多媒體播放框架支持支持該多媒體數(shù)據(jù)的解碼時(shí),執(zhí)行該通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼的步驟。可選地,該播放緩沖區(qū)包括音頻播放緩沖區(qū)和視頻播放緩沖區(qū)中的至少一個(gè),該音頻播放緩沖區(qū)用于存儲(chǔ)解碼后的該音頻數(shù)據(jù),該視頻播放緩沖區(qū)用于存儲(chǔ)解碼后的該視頻數(shù)據(jù);相應(yīng)地,該通過(guò)該預(yù)置的多媒體播放框架,從該播放緩沖區(qū)中獲取并播放解碼后的該多媒體數(shù)據(jù),包括:當(dāng)該多媒體數(shù)據(jù)包括音頻數(shù)據(jù)時(shí),通過(guò)該預(yù)置的多媒體播放框架中的音頻輸出服務(wù)AudioFlinger,從該音頻播放緩沖區(qū)獲取并播放解碼的該音頻數(shù)據(jù);當(dāng)該多媒體數(shù)據(jù)包括視頻數(shù)據(jù)時(shí),通過(guò)該預(yù)置的多媒體播放框架中的視頻輸出服務(wù)SurfaceFlinger,從該視頻播放緩沖區(qū)獲取并播放解碼后的該視頻數(shù)據(jù)??蛇x地,該第三方多媒體播放框架為FFmpeg。上述所有可選技術(shù)方案,均可按照任意結(jié)合形成本公開(kāi)的可選實(shí)施例,本公開(kāi)實(shí)施例對(duì)此不再一一贅述。圖2是根據(jù)一示例性實(shí)施例示出的一種多媒體文件的播放方法的流程圖,參照?qǐng)D2,該多媒體文件的播放方法用于終端中,包括以下步驟。在步驟201中,當(dāng)接收到多媒體播放指令時(shí),終端確定目標(biāo)多媒體文件,該目標(biāo)多媒體文件為待播放的多媒體文件。由于該終端當(dāng)前可能存在多個(gè)能夠播放的多媒體文件,因此,當(dāng)接收到該多媒體播放指令時(shí),該終端可以確定待播放的目標(biāo)多媒體文件。其中,該終端可以是手機(jī)、平板電腦、智能電視等終端,當(dāng)然,在實(shí)際應(yīng)用中,該終端還可以是其它能夠播放多媒體文件的終端。需要說(shuō)明的是,該多媒體播放指令用于指示該終端播放多媒體文件,該多媒體播放指令可以由用戶(hù)通過(guò)執(zhí)行預(yù)設(shè)操作觸發(fā),該預(yù)設(shè)操作可以是點(diǎn)擊操作、觸摸操作、滑動(dòng)操作、按鍵操作等操作,當(dāng)然,在實(shí)際應(yīng)用中,該預(yù)設(shè)操作還可以是其它操作。還需要說(shuō)明的是,該目標(biāo)多媒體文件可以是本地存儲(chǔ)的多媒體文件或者流媒體多媒體文件。進(jìn)一步地,該終端可以是基于任一多媒體文件接收到該多媒體播放指令,并在接收到該多媒體播放指令時(shí),將該多媒體文件確定為目標(biāo)多媒體文件;或者,在另一種可能的實(shí)現(xiàn)方式中,該終端在接收到該多媒體播放指令時(shí),顯示多媒體文件菜單,該多媒體文件菜單中包括至少一個(gè)多媒體文件的文件標(biāo)識(shí),當(dāng)基于任一文件標(biāo)識(shí)接收到選擇指令時(shí),將該文件標(biāo)識(shí)對(duì)應(yīng)的多媒體文件確定為該目標(biāo)多媒體文件。其中,文件標(biāo)識(shí)用于在該終端中標(biāo)識(shí)一個(gè)多媒體文件,文件標(biāo)識(shí)可以是該多媒體文件的名稱(chēng)、ID(Identification,身份證)等,當(dāng)然,在實(shí)際應(yīng)用中,該文件標(biāo)識(shí)還可以是其它能夠標(biāo)識(shí)一個(gè)多媒體文件的標(biāo)識(shí)。需要說(shuō)明的是,該選擇指令用于在該至少一個(gè)多媒體文件的文件標(biāo)識(shí)中選擇一個(gè)文件標(biāo)識(shí),從而確定該目標(biāo)多媒體文件,該選擇指令可以由用戶(hù)通過(guò)執(zhí)行預(yù)設(shè)操作觸發(fā)。在步驟202中,該終端基于該目標(biāo)多媒體文件的類(lèi)型,選擇第三方多媒體播放框架或預(yù)置的多媒體播放框架,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)。由于多媒體文件的多媒體數(shù)據(jù)通常可能包括音頻數(shù)據(jù)和視頻數(shù)據(jù),在播放該多媒體文件時(shí),需要分別播放音頻數(shù)據(jù)和視頻數(shù)據(jù),因此,可以對(duì)該目標(biāo)多媒體文件進(jìn)行解析,從而得到該目標(biāo)多媒體文件的多媒體數(shù)據(jù)中包括的音頻數(shù)據(jù)和視頻數(shù)據(jù)中的至少一個(gè)。且由于對(duì)于不同類(lèi)型的多媒體文件,所需要的解析方式可能不同,而該預(yù)置的多媒體播放框架對(duì)多媒體文件的解析能力通常較差,因此,為了提高對(duì)該多媒體文件進(jìn)行解析的效率,可以基于該目標(biāo)多媒體文件的類(lèi)型,在第三方多媒體播放框架與該預(yù)置的多媒體播放框架中選擇一個(gè)多媒體播放框架,并通過(guò)選擇的多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析。需要說(shuō)明的是,該第三方多媒體播放框架可以是FFmpeg。當(dāng)然,在實(shí)際應(yīng)用中,該第三方多媒體播放框架還可以是其它多媒體播放框架。進(jìn)一步地,該第三方多媒體播放框架可以以插件的形式集成在該預(yù)設(shè)的多媒體播放框架中。其中,該終端可以確定該目標(biāo)多媒體文件的類(lèi)型,基于該目標(biāo)多媒體文件的類(lèi)型,判斷該預(yù)置的多媒體播放框架支持該目標(biāo)多媒體文件的解析還是該第三方媒體播放框架支持該目標(biāo)多媒體文件的解析,當(dāng)該第三方多媒體播放框架支持該目標(biāo)多媒體文件的解析時(shí),通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)。當(dāng)該第三方多媒體播放框架不支持對(duì)該目標(biāo)多媒體文件解析,且該預(yù)置的多媒體播放框架能夠?qū)υ撃繕?biāo)多媒體文件進(jìn)行解析時(shí),通過(guò)該預(yù)置的多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析。也即是,在該第三方多媒體播放框架支持對(duì)該目標(biāo)多媒體文件進(jìn)行解析時(shí),優(yōu)先選擇該第三方多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,且由于第三方多媒體播放框架對(duì)多媒體文件的解析能力通常優(yōu)于該預(yù)置的多媒體播放框架,因此這種方式能夠提高對(duì)目標(biāo)多媒體文件解析的成功率。當(dāng)然,在實(shí)際應(yīng)用中,該終端也可以?xún)?yōu)先選擇該預(yù)置的多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析。需要說(shuō)明的是,該目標(biāo)多媒體文件的類(lèi)型可以攜帶在目標(biāo)多媒體文件中,因此該終端可以從該目標(biāo)多媒體文件中獲取該多媒體目標(biāo)文件的類(lèi)型。進(jìn)一步地,為了提高判斷該預(yù)置的多媒體播放框架支持該目標(biāo)多媒體文件的解析還是該第三方媒體播放框架支持該目標(biāo)多媒體文件的解析的效率,進(jìn)而提高播放多媒體文件的效率,該終端可以根據(jù)該目標(biāo)多媒體文件的類(lèi)型,從多媒體文件的類(lèi)型與多媒體播放框架之間的對(duì)應(yīng)關(guān)系中,確定與該多媒體文件類(lèi)型對(duì)應(yīng)的多媒體播放框架。例如,該目標(biāo)多媒體文件的類(lèi)型為AVI(AudioVideoInterleaved,音頻視頻交錯(cuò)格式),該終端根據(jù)該目標(biāo)多媒體文件的類(lèi)型為AVI,從下表1所述的多媒體文件的類(lèi)型與多媒體播放框架之間的對(duì)應(yīng)關(guān)系中,確定AVI對(duì)應(yīng)的多媒體播放框架為第三方多媒體播放框架,因此,該終端確定該第三方多媒體播放框架能夠?qū)υ撃繕?biāo)多媒體文件進(jìn)行解析。表1多媒體文件的類(lèi)型多媒體播放框架AVI第三方多媒體播放框架、預(yù)置的多媒體播放框架FLV第三方多媒體播放框架MP4預(yù)置的多媒體播放框架…………需要說(shuō)明的是,本公開(kāi)實(shí)施例僅以上述表1所示的多媒體文件的類(lèi)型與多媒體播放框架之間的對(duì)應(yīng)關(guān)系為例進(jìn)行說(shuō)明,上述表1并不對(duì)本公開(kāi)實(shí)施例構(gòu)成限定。還需要說(shuō)明的是,該終端可以在根據(jù)該目標(biāo)多媒體文件的類(lèi)型,從多媒體文件的類(lèi)型與多媒體播放框架之間的對(duì)應(yīng)關(guān)系中,確定與該多媒體文件類(lèi)型對(duì)應(yīng)的多媒體播放框架之前,分別確定該預(yù)置的多媒體播放框架和該第三方多媒體播放框架所解析的多媒體文件的類(lèi)型,并將每個(gè)多媒體文件的類(lèi)型和能夠解析該類(lèi)型的多媒體文件的多媒體播放框架存儲(chǔ)在多媒體文件的類(lèi)型與多媒體播放框架之間的對(duì)應(yīng)關(guān)系中。還需要說(shuō)明的是,該終端可以事先存儲(chǔ)不同類(lèi)型的多媒體文件樣本,并分別通過(guò)該預(yù)置的多媒體播放框架和該第三方多媒體播放框架對(duì)該不同類(lèi)型的多媒體文件樣本進(jìn)行解析,從而分別確定該預(yù)置的多媒體播放框架和該第三方多媒體播放框架是否能夠?qū)υ摬煌?lèi)型中每個(gè)類(lèi)型的多媒體文件進(jìn)行解析。當(dāng)然,在實(shí)際應(yīng)用中,該終端還可以通過(guò)其它方式來(lái)分別確定該預(yù)置的多媒體播放框架和該第三方多媒體播放框架是否能夠?qū)υ摬煌?lèi)型中每個(gè)類(lèi)型的多媒體文件進(jìn)行解析。進(jìn)一步,由前述可知,第三方多媒體播放框架對(duì)多媒體文件的解析能力通常優(yōu)于該終端預(yù)置的多媒體播放框架,因此為了提高對(duì)該目標(biāo)多媒體文件進(jìn)行解析的效率,從而提高播放該多媒體文件的效率,該終端也可以不對(duì)執(zhí)行判斷該預(yù)置的多媒體播放框架支持該目標(biāo)多媒體文件的解析還是該第三方媒體播放框架支持該目標(biāo)多媒體文件的解析的步驟,從而直接選擇該第三方多媒體播放框架,通過(guò)該第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)。其中,由于對(duì)不同類(lèi)型的多媒體文件的進(jìn)行解析的方式也可能不同,因此,為了準(zhǔn)確地對(duì)該目標(biāo)多媒體文件進(jìn)行解析,該第三方多媒體播放框架的解析功能可以包括多個(gè)解析器函數(shù),每個(gè)解析器函數(shù)可以用于對(duì)一種類(lèi)型的多媒體文件進(jìn)行解析。例如,當(dāng)該第三方多媒體播放框架為FFmpeg時(shí),該終端可以通過(guò)該FFmpeg調(diào)用open_input_file函數(shù)打開(kāi)該目標(biāo)多媒體文件,調(diào)用av_read_frame函數(shù)讀取該目標(biāo)多媒體文件包括的數(shù)據(jù),通過(guò)調(diào)用sniffer函數(shù)對(duì)讀取到的數(shù)據(jù)進(jìn)行分析,從而確定一個(gè)能夠解析該目標(biāo)多媒體文件該讀取到的數(shù)據(jù)進(jìn)行解析的解析器函數(shù),并通過(guò)確定的該解析器函數(shù)對(duì)讀取的數(shù)據(jù)進(jìn)行解析,從而解析該目標(biāo)多媒體文件。需要說(shuō)明的是,該open_input_file函數(shù)用于打開(kāi)多媒體文件,該av_read_frame函數(shù)用于讀取多媒體文件中的數(shù)據(jù),當(dāng)然,在實(shí)際應(yīng)用中,該終端通過(guò)調(diào)用其它函數(shù)來(lái)打開(kāi)多媒體文件或讀取多媒體文件中的數(shù)據(jù)。還需要說(shuō)明的是,該sniffer函數(shù)用于對(duì)多媒體包括的數(shù)據(jù)分析,從而確定一個(gè)能夠解析該多媒體文件的解析器函數(shù)。當(dāng)然,在實(shí)際應(yīng)用中,該終端還可以通過(guò)調(diào)用其它函數(shù)對(duì)多媒體文件包括的數(shù)據(jù)進(jìn)行分析,并確定一個(gè)能夠解析該多媒體文件的解析器函數(shù)。在步驟203中,該終端基于該多媒體數(shù)據(jù)的格式,選擇第三方多媒體播放框架或預(yù)置的多媒體播放框架,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。由于該多媒體數(shù)據(jù)包括通常是采用不同的編碼方式進(jìn)行壓縮之后的數(shù)據(jù),也即是,解析得到的該多媒體數(shù)據(jù)可能具有不同的格式,該終端難以直接對(duì)該多媒體數(shù)據(jù)進(jìn)行播放,因此,為了播放該多媒體文件,需要對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。且由于預(yù)置的多媒體播放框架的解碼能力有限,因此,為了提高對(duì)多媒體數(shù)據(jù)進(jìn)行解碼的成功率,在第三方多媒體播放框架和預(yù)置的多媒體播放框架中選擇一個(gè)多媒體播放框架,并通過(guò)選擇的多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。其中,該終端可以確定該多媒體數(shù)據(jù)的格式,基于該多媒體數(shù)據(jù)的格式,判斷該預(yù)置的多媒體播放框架支持該多媒體數(shù)據(jù)的解碼還是該第三方媒體播放框架支持該多媒體數(shù)據(jù)的解碼,當(dāng)該第三方多媒體播放框架支持對(duì)該多媒體數(shù)據(jù)的解碼時(shí),通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。當(dāng)該第三方多媒體播放框架不支持對(duì)該多媒體數(shù)據(jù)的解碼。且該預(yù)置的多媒體支持對(duì)該多媒體數(shù)據(jù)的解碼時(shí),通過(guò)該預(yù)置的多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。也即是,在該第三方多媒體播放框架支持對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼時(shí),優(yōu)先選擇該第三方多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解析。且由于該第三方多媒體播放框架的解碼能力通常由于該預(yù)置的多媒體播放框架,因此,這方式能夠提高對(duì)該多媒體數(shù)據(jù)解析的成功率。當(dāng)然,在實(shí)際應(yīng)用中,該終端也可以?xún)?yōu)先選擇該閾值的多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。需要說(shuō)明的是,多媒體數(shù)據(jù)的格式可以攜帶在該多媒體數(shù)據(jù)中,因此,該終端可以從該多媒體數(shù)據(jù)中獲取該多媒體數(shù)據(jù)的格式。還需要說(shuō)明的是,該終端判斷該預(yù)置的多媒體播放框架支持該多媒體數(shù)據(jù)的解碼還是該第三方媒體播放框架支持該多媒體數(shù)據(jù)的解碼的方式,可以與判斷該預(yù)置的多媒體播放框架支持該目標(biāo)多媒體文件的解析還是該第三方媒體播放框架支持該目標(biāo)多媒體文件的解析的方式相似,本公開(kāi)實(shí)施例不再一一贅述。進(jìn)一步地,為了提高對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼的效率,進(jìn)而提高播放該目標(biāo)多媒體文件的效率,因此,該終端也可以不執(zhí)行判斷該預(yù)置的多媒體播放框架支持該多媒體數(shù)據(jù)的解碼還是該第三方媒體播放框架支持該多媒體數(shù)據(jù)的解碼的步驟,從而直接選擇該第三方多媒體播放框架,通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。需要說(shuō)明的是,該終端可以在通過(guò)選擇的對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼的多媒體播放框架與對(duì)該目標(biāo)多媒體文件進(jìn)行解碼之后,將該多媒體數(shù)據(jù)存儲(chǔ)至用于對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼的多媒體播放框架的解碼緩沖區(qū)中,該解碼緩沖區(qū)用于存儲(chǔ)對(duì)該目標(biāo)多媒體文件進(jìn)行解析所得到的多媒體數(shù)據(jù)。之后,該終端可以通過(guò)對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼的多媒體播放框架,從該解碼緩沖區(qū)中獲取該多媒體數(shù)據(jù),并對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。還需要說(shuō)明的是,由于該多媒體數(shù)據(jù)可能包括音頻數(shù)據(jù)和視頻數(shù)據(jù),因此,該解碼緩沖區(qū)也可以包括音頻解碼緩沖區(qū)和視頻解碼緩沖區(qū)中的至少一個(gè),其中,該音頻解碼緩沖區(qū)可以用于存儲(chǔ)該音頻數(shù)據(jù),該視頻解碼緩沖區(qū)可以用于存儲(chǔ)該視頻數(shù)據(jù)。例如,當(dāng)該終端選擇該預(yù)置的多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼時(shí),可以將該多媒體數(shù)據(jù)包括的音頻數(shù)據(jù)存儲(chǔ)至該預(yù)置的多媒體播放框架包括的音頻MediaBuffer(媒體緩沖)中,將該多媒體數(shù)據(jù)包括的視頻數(shù)據(jù)存儲(chǔ)至該預(yù)置的多媒體播放框包括的視頻MediaBuffer中,MediaBuffer為該預(yù)置的多媒體播放框架中的一種可以用于數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)體。當(dāng)該終端選擇該第三方多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼,且該第三方多媒體播放框架為FFmpeg時(shí),可以將該多媒體包括的音頻數(shù)據(jù)存儲(chǔ)至該FFmpeg包括的音頻avpacket中,將該多媒體包括的視頻數(shù)據(jù)存儲(chǔ)至該FFmpeg包括的視頻avpacket中,avpacket為該FFmpeg中的一種可以用于數(shù)據(jù)傳輸?shù)慕Y(jié)構(gòu)體。進(jìn)一步地,為了提高播放該目標(biāo)多媒體文件的效率,該終端可以將該多媒體數(shù)據(jù)存儲(chǔ)至共享緩沖區(qū)中,該共享緩沖區(qū)可以是該終端事先建立。且該預(yù)置的多媒體播放框架與該第三方多媒體播放框架共享的解碼緩沖區(qū),該共享緩沖區(qū)可以包括音頻共享緩沖區(qū)和視頻共享緩沖區(qū)中的至少一個(gè)。綜上所述,該終端能夠通過(guò)下述四種可能的實(shí)現(xiàn)方式對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并對(duì)解析得到的多媒體數(shù)據(jù)進(jìn)行解碼:第一種可能的實(shí)現(xiàn)方式,該終端可以通過(guò)該第三方多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)該第三方多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。第二種可能的實(shí)現(xiàn)方式,該終端可以通過(guò)該第三方多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)該預(yù)置的多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。第三種可能的實(shí)現(xiàn)方式,該終端可以通過(guò)該預(yù)置的多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)該第三方多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。第四種可能的實(shí)現(xiàn)方式,該終端可以通過(guò)該預(yù)置的多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)該預(yù)置的多媒體播放框架對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼。進(jìn)一步地,在對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼之后,可以將解碼后的該多媒體數(shù)據(jù)存儲(chǔ)至預(yù)置的多媒體播放框架的播放緩沖區(qū),該播放緩沖區(qū)用于存儲(chǔ)解碼后的該多媒體數(shù)據(jù)。其中,該播放緩沖區(qū)包括音頻播放緩沖區(qū)和視頻播放緩沖區(qū)中的至少一個(gè),該音頻播放緩沖區(qū)用于存儲(chǔ)解碼后的該音頻數(shù)據(jù),該視頻播放緩沖區(qū)用于存儲(chǔ)解碼后的該視頻數(shù)據(jù)。該終端可以將解碼后的該音頻數(shù)據(jù)存儲(chǔ)至音頻播放緩沖區(qū)中,將解碼后的該視頻數(shù)據(jù)存儲(chǔ)在該視頻播放緩沖區(qū)中。在步驟204中,該終端通過(guò)該預(yù)置的多媒體播放框架,對(duì)解碼后的該多媒體數(shù)據(jù)進(jìn)行播放,以播放該目標(biāo)多媒體文件。由于已經(jīng)對(duì)該多媒體數(shù)據(jù)進(jìn)行了解碼,因此,可以直接通過(guò)播放解碼后的該多媒體數(shù)據(jù),從而播放該目標(biāo)多媒體文件。且由于該預(yù)置的多媒體播放框架通常與該終端的兼容性較高,因此,該終端通過(guò)該預(yù)置的多媒體播放框架播放該多媒體文件時(shí),能夠更好的利用該終端的硬件資源,從而能夠減少播放該目標(biāo)多媒體文件時(shí)出現(xiàn)音畫(huà)不同步等問(wèn)題,也即是能夠提高播該目標(biāo)多媒體文件的播放效果和成功率其中,該終端可以該通過(guò)該預(yù)置的多媒體播放框架,從該播放緩沖區(qū)中獲取并播放解碼后的該多媒體數(shù)據(jù)的操作可以為:當(dāng)該多媒體數(shù)據(jù)包括音頻數(shù)據(jù)時(shí),通過(guò)該預(yù)置的多媒體播放框架中的音頻輸出服務(wù)AudioFlinger,從該音頻播放緩沖區(qū)獲取并播放解碼的該音頻數(shù)據(jù),當(dāng)該多媒體數(shù)據(jù)包括視頻數(shù)據(jù)時(shí),通過(guò)該預(yù)置的多媒體播放框架中的視頻輸出服務(wù)SurfaceFlinger,從該視頻播放緩沖區(qū)獲取并播放解碼后的該視頻數(shù)據(jù)。需要說(shuō)明的是,該AudioFlinger為該預(yù)置的多媒體播放框架中用于播放音頻數(shù)據(jù)的音頻輸出服務(wù),該SurfaceFlinger為該預(yù)置的多媒體播放框架中用于播放視頻數(shù)據(jù)的視頻輸出服務(wù)。進(jìn)一步地,在播放該目標(biāo)多媒體文件的過(guò)程中,該終端可能需要對(duì)當(dāng)前播放的該目標(biāo)多媒體文件進(jìn)行快進(jìn)、快退等跳轉(zhuǎn)操作,也即是,可能需要獲取該目標(biāo)多媒體文件中指定位置的數(shù)據(jù),并對(duì)獲取到的數(shù)據(jù)進(jìn)行解析和解碼,因此,當(dāng)該終端通過(guò)FFmpeg對(duì)該目標(biāo)多媒體文件進(jìn)行解析,或通過(guò)FFmpeg對(duì)多媒體數(shù)據(jù)進(jìn)行解碼時(shí),可以通過(guò)avformat_seek_file函數(shù)來(lái)獲取該多媒體文件中指定位置的數(shù)據(jù)。其中,avformat_seek_file函數(shù)是FFmpeg中用于獲取多媒體文件中指定位置的數(shù)據(jù)的函數(shù)。當(dāng)然,在實(shí)際應(yīng)用中,該終端還可以通過(guò)其它函數(shù)來(lái)獲取多媒體文件中指定位置的數(shù)據(jù)。另外,在播放該目標(biāo)多媒體文件的過(guò)程中,該終端還可以通過(guò)第三方多媒體播放框架來(lái)實(shí)現(xiàn)其它功能,比如,顯示該目標(biāo)多媒體文件的縮略圖等。在本公開(kāi)實(shí)施例中,首先,由于第三方多媒體播放框架對(duì)多媒體文件的解析能力以及對(duì)多媒體數(shù)據(jù)的解碼能力通常優(yōu)于預(yù)置的多媒體播放框架,而預(yù)置的多媒體播放框架播放解碼后的多媒體數(shù)據(jù)的能力通常優(yōu)于第三方多媒體播放框架,因此,該終端可以通過(guò)第三方多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)第三方多媒體播放框架對(duì)解析得到的多媒體數(shù)據(jù)進(jìn)行解碼,通過(guò)預(yù)置的多媒體播放框架對(duì)解碼的多媒體數(shù)據(jù)進(jìn)行播放,從而提高了播放多媒體文件的播放效果和成功率。其次,當(dāng)對(duì)該目標(biāo)多媒體文件進(jìn)行解析或?qū)υ摱嗝襟w數(shù)據(jù)進(jìn)行解碼時(shí),該終端能夠在該預(yù)置的多媒體播放框架與該第三方多媒體播放框架之間選擇一個(gè)多媒體播放框架,從而能夠靈活地選擇多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解碼的靈活性或?qū)υ摱嗝襟w數(shù)據(jù)進(jìn)行解析的靈活性,以確保準(zhǔn)確地能夠?qū)υ撃繕?biāo)多媒體文件進(jìn)行解析,并對(duì)解析得到的多媒體數(shù)據(jù)進(jìn)行解碼,進(jìn)一步提高了播放多媒體文件的播放效果和成功率。圖3是根據(jù)一示例性實(shí)施例示出的一種多媒體文件的播放裝置框圖。參照?qǐng)D3,該裝置包括第一確定模塊301,解析模塊302,解碼模塊303和播放模塊304。第一確定模塊301,用于當(dāng)接收到多媒體播放指令時(shí),確定目標(biāo)多媒體文件,該目標(biāo)多媒體文件為待播放的多媒體文件;解析模塊302,用于通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù),該多媒體數(shù)據(jù)包括音頻數(shù)據(jù)和視頻數(shù)據(jù)中的至少一個(gè);解碼模塊303,用于通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼,并將解碼后的該多媒體數(shù)據(jù)存儲(chǔ)至預(yù)置的多媒體播放框架的播放緩沖區(qū),該播放緩沖區(qū)用于存儲(chǔ)解碼后的該多媒體數(shù)據(jù);播放模塊304,用于通過(guò)該預(yù)置的多媒體播放框架,從該播放緩沖區(qū)中獲取并播放解碼后的該多媒體數(shù)據(jù),以播放該目標(biāo)多媒體文件。可選地,該裝置還包括:第二確定模塊,用于確定該目標(biāo)多媒體文件的類(lèi)型;第一判斷模塊,用于基于該目標(biāo)多媒體文件的類(lèi)型,判斷該預(yù)置的多媒體播放框架支持該目標(biāo)多媒體文件的解析還是該第三方媒體播放框架支持該目標(biāo)多媒體文件的解析;第一觸發(fā)模塊,用于當(dāng)該第三方多媒體播放框架支持該目標(biāo)多媒體文件的解析時(shí),觸發(fā)該解析模塊通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)??蛇x地,該裝置還包括:第三確定模塊,用于確定該多媒體數(shù)據(jù)的格式;第二判斷模塊,用于基于該多媒體數(shù)據(jù)的格式,判斷該預(yù)置的多媒體播放框架支持該多媒體數(shù)據(jù)的解碼還是該第三方媒體播放框架支持該多媒體數(shù)據(jù)的解碼;第二觸發(fā)模塊,用于當(dāng)該第三方多媒體播放框架支持支持該多媒體數(shù)據(jù)的解碼時(shí),觸發(fā)該解碼模塊通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼??蛇x地,該播放緩沖區(qū)包括音頻播放緩沖區(qū)和視頻播放緩沖區(qū)中的至少一個(gè),該音頻播放緩沖區(qū)用于存儲(chǔ)解碼后的該音頻數(shù)據(jù),該視頻播放緩沖區(qū)用于存儲(chǔ)解碼后的該視頻數(shù)據(jù);相應(yīng)地,該播放模塊304包括:第一播放子模塊,用于當(dāng)該多媒體數(shù)據(jù)包括音頻數(shù)據(jù)時(shí),通過(guò)該預(yù)置的多媒體播放框架中的音頻輸出服務(wù)AudioFlinger,從該音頻播放緩沖區(qū)獲取并播放解碼的該音頻數(shù)據(jù);第二播放子模塊,用于當(dāng)該多媒體數(shù)據(jù)包括視頻數(shù)據(jù)時(shí),通過(guò)該預(yù)置的多媒體播放框架中的視頻輸出服務(wù)SurfaceFlinger,從該視頻播放緩沖區(qū)獲取并播放解碼后的該視頻數(shù)據(jù)。可選地,該第三方多媒體播放框架為FFmpeg。在本公開(kāi)實(shí)施例中,由于第三方多媒體播放框架對(duì)多媒體文件的解析能力以及對(duì)多媒體數(shù)據(jù)的解碼能力通常優(yōu)于預(yù)置的多媒體播放框架,而預(yù)置的多媒體播放框架播放解碼后的多媒體數(shù)據(jù)的能力通常優(yōu)于第三方多媒體播放框架,因此,該終端可以通過(guò)第三方多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)第三方多媒體播放框架對(duì)解析得到的多媒體數(shù)據(jù)進(jìn)行解碼,通過(guò)預(yù)置的多媒體播放框架對(duì)解碼的多媒體數(shù)據(jù)進(jìn)行播放,從而提高了播放多媒體文件的播放效果和成功率。關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。圖4是根據(jù)一示例性實(shí)施例示出的一種多媒體文件的播放裝置400的框圖。例如,裝置400可以是移動(dòng)電話,計(jì)算機(jī),數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺(tái),平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個(gè)人數(shù)字助理等。參照?qǐng)D4,裝置400可以包括以下一個(gè)或多個(gè)組件:處理組件402,存儲(chǔ)器404,電源組件406,多媒體組件408,音頻組件410,輸入/輸出(I/O)的接口412,傳感器組件414,以及通信組件416。處理組件402通??刂蒲b置400的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機(jī)操作和記錄操作相關(guān)聯(lián)的操作。處理組件402可以包括一個(gè)或多個(gè)處理器420來(lái)執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件402可以包括一個(gè)或多個(gè)模塊,便于處理組件402和其他組件之間的交互。例如,處理組件402可以包括多媒體模塊,以方便多媒體組件408和處理組件402之間的交互。存儲(chǔ)器404被配置為存儲(chǔ)各種類(lèi)型的數(shù)據(jù)以支持在裝置400的操作。這些數(shù)據(jù)的示例包括用于在裝置400上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲(chǔ)器404可以由任何類(lèi)型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),電可擦除可編程只讀存儲(chǔ)器(EEPROM),可擦除可編程只讀存儲(chǔ)器(EPROM),可編程只讀存儲(chǔ)器(PROM),只讀存儲(chǔ)器(ROM),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤(pán)或光盤(pán)。電源組件406為裝置400的各種組件提供電源。電源組件406可以包括電源管理系統(tǒng),一個(gè)或多個(gè)電源,及其他與為裝置400生成、管理和分配電源相關(guān)聯(lián)的組件。多媒體組件408包括在所述裝置400和用戶(hù)之間的提供一個(gè)輸出接口的屏幕。在一些實(shí)施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實(shí)現(xiàn)為觸摸屏,以接收來(lái)自用戶(hù)的輸入信號(hào)。觸摸面板包括一個(gè)或多個(gè)觸摸傳感器以感測(cè)觸摸、滑動(dòng)和觸摸面板上的手勢(shì)。所述觸摸傳感器可以不僅感測(cè)觸摸或滑動(dòng)動(dòng)作的邊界,而且還檢測(cè)與所述觸摸或滑動(dòng)操作相關(guān)的持續(xù)時(shí)間和壓力。在一些實(shí)施例中,多媒體組件408包括一個(gè)前置攝像頭和/或后置攝像頭。當(dāng)裝置400處于操作模式,如拍攝模式或視頻模式時(shí),前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個(gè)前置攝像頭和后置攝像頭可以是一個(gè)固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。音頻組件410被配置為輸出和/或輸入音頻信號(hào)。例如,音頻組件410包括一個(gè)麥克風(fēng)(MIC),當(dāng)裝置400處于操作模式,如呼叫模式、記錄模式和語(yǔ)音識(shí)別模式時(shí),麥克風(fēng)被配置為接收外部音頻信號(hào)。所接收的音頻信號(hào)可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器404或經(jīng)由通信組件416發(fā)送。在一些實(shí)施例中,音頻組件410還包括一個(gè)揚(yáng)聲器,用于輸出音頻信號(hào)。I/O接口412為處理組件402和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤(pán),點(diǎn)擊輪,按鈕等。這些按鈕可包括但不限于:主頁(yè)按鈕、音量按鈕、啟動(dòng)按鈕和鎖定按鈕。傳感器組件414包括一個(gè)或多個(gè)傳感器,用于為裝置400提供各個(gè)方面的狀態(tài)評(píng)估。例如,傳感器組件414可以檢測(cè)到裝置400的打開(kāi)/關(guān)閉狀態(tài),組件的相對(duì)定位,例如所述組件為裝置400的顯示器和小鍵盤(pán),傳感器組件414還可以檢測(cè)裝置400或裝置400一個(gè)組件的位置改變,用戶(hù)與裝置400接觸的存在或不存在,裝置400方位或加速/減速和裝置400的溫度變化。傳感器組件414可以包括接近傳感器,被配置用來(lái)在沒(méi)有任何的物理接觸時(shí)檢測(cè)附近物體的存在。傳感器組件414還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實(shí)施例中,該傳感器組件414還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。通信組件416被配置為便于裝置400和其他設(shè)備之間有線或無(wú)線方式的通信。裝置400可以接入基于通信標(biāo)準(zhǔn)的無(wú)線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個(gè)示例性實(shí)施例中,通信組件416經(jīng)由廣播信道接收來(lái)自外部廣播管理系統(tǒng)的廣播信號(hào)或廣播相關(guān)信息。在一個(gè)示例性實(shí)施例中,所述通信組件416還包括近場(chǎng)通信(NFC)模塊,以促進(jìn)短程通信。例如,在NFC模塊可基于射頻識(shí)別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(huì)(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍(lán)牙(BT)技術(shù)和其他技術(shù)來(lái)實(shí)現(xiàn)。在示例性實(shí)施例中,裝置400可以被一個(gè)或多個(gè)應(yīng)用專(zhuān)用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述方法。在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器404,上述指令可由裝置400的處理器420執(zhí)行以完成上述方法。例如,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是ROM、隨機(jī)存取存儲(chǔ)器(RAM)、CD-ROM、磁帶、軟盤(pán)和光數(shù)據(jù)存儲(chǔ)設(shè)備等。一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由移動(dòng)終端的處理器執(zhí)行時(shí),使得移動(dòng)終端能夠執(zhí)行一種多媒體文件的播放方法,所述方法包括:當(dāng)接收到多媒體播放指令時(shí),確定目標(biāo)多媒體文件,該目標(biāo)多媒體文件為待播放的多媒體文件;通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù),該多媒體數(shù)據(jù)包括音頻數(shù)據(jù)和視頻數(shù)據(jù)中的至少一個(gè);通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼,并將解碼后的該多媒體數(shù)據(jù)存儲(chǔ)至預(yù)置的多媒體播放框架的播放緩沖區(qū),該播放緩沖區(qū)用于存儲(chǔ)解碼后的該多媒體數(shù)據(jù);通過(guò)該預(yù)置的多媒體播放框架,從該播放緩沖區(qū)中獲取并播放解碼后的該多媒體數(shù)據(jù),以播放該目標(biāo)多媒體文件??蛇x地,通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)之前,還包括:確定該目標(biāo)多媒體文件的類(lèi)型;基于該目標(biāo)多媒體文件的類(lèi)型,判斷該預(yù)置的多媒體播放框架支持該目標(biāo)多媒體文件的解析還是該第三方媒體播放框架支持該目標(biāo)多媒體文件的解析;當(dāng)該第三方多媒體播放框架支持該目標(biāo)多媒體文件的解析時(shí),執(zhí)行該通過(guò)第三方多媒體播放框架中的解析功能,對(duì)該目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)的步驟??蛇x地,通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼之前,還包括:確定該多媒體數(shù)據(jù)的格式;基于該多媒體數(shù)據(jù)的格式,判斷該預(yù)置的多媒體播放框架支持該多媒體數(shù)據(jù)的解碼還是該第三方媒體播放框架支持該多媒體數(shù)據(jù)的解碼;當(dāng)該第三方多媒體播放框架支持支持該多媒體數(shù)據(jù)的解碼時(shí),執(zhí)行該通過(guò)該第三方多媒體播放框架中的解碼功能,對(duì)該多媒體數(shù)據(jù)進(jìn)行解碼的步驟??蛇x地,該播放緩沖區(qū)包括音頻播放緩沖區(qū)和視頻播放緩沖區(qū)中的至少一個(gè),該音頻播放緩沖區(qū)用于存儲(chǔ)解碼后的該音頻數(shù)據(jù),該視頻播放緩沖區(qū)用于存儲(chǔ)解碼后的該視頻數(shù)據(jù);相應(yīng)地,該通過(guò)該預(yù)置的多媒體播放框架,從該播放緩沖區(qū)中獲取并播放解碼后的該多媒體數(shù)據(jù),包括:當(dāng)該多媒體數(shù)據(jù)包括音頻數(shù)據(jù)時(shí),通過(guò)該預(yù)置的多媒體播放框架中的音頻輸出服務(wù)AudioFlinger,從該音頻播放緩沖區(qū)獲取并播放解碼的該音頻數(shù)據(jù);當(dāng)該多媒體數(shù)據(jù)包括視頻數(shù)據(jù)時(shí),通過(guò)該預(yù)置的多媒體播放框架中的視頻輸出服務(wù)SurfaceFlinger,從該視頻播放緩沖區(qū)獲取并播放解碼后的該視頻數(shù)據(jù)??蛇x地,該第三方多媒體播放框架為FFmpeg。在本公開(kāi)實(shí)施例中,由于第三方多媒體播放框架對(duì)多媒體文件的解析能力以及對(duì)多媒體數(shù)據(jù)的解碼能力通常優(yōu)于預(yù)置的多媒體播放框架,而預(yù)置的多媒體播放框架播放解碼后的多媒體數(shù)據(jù)的能力通常優(yōu)于第三方多媒體播放框架,因此,該終端可以通過(guò)第三方多媒體播放框架對(duì)該目標(biāo)多媒體文件進(jìn)行解析,并通過(guò)第三方多媒體播放框架對(duì)解析得到的多媒體數(shù)據(jù)進(jìn)行解碼,通過(guò)預(yù)置的多媒體播放框架對(duì)解碼的多媒體數(shù)據(jù)進(jìn)行播放,從而提高了播放多媒體文件的播放效果和成功率。本領(lǐng)域技術(shù)人員在考慮說(shuō)明書(shū)及實(shí)踐這里公開(kāi)的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開(kāi)未公開(kāi)的本
技術(shù)領(lǐng)域:
中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書(shū)和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來(lái)限制。當(dāng)前第1頁(yè)1 2 3