1.一種多媒體文件的播放方法,其特征在于,所述方法包括:
當(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)多媒體文件。
2.如權(quán)利要求1所述的方法,其特征在于,所述通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)之前,還包括:
確定所述目標(biāo)多媒體文件的類型;
基于所述目標(biāo)多媒體文件的類型,判斷所述預(yù)置的多媒體播放框架支持所述目標(biāo)多媒體文件的解析還是所述第三方媒體播放框架支持所述目標(biāo)多媒體文件的解析;
當(dāng)所述第三方多媒體播放框架支持所述目標(biāo)多媒體文件的解析時(shí),執(zhí)行所述通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)的步驟。
3.如權(quán)利要求1所述的方法,其特征在于,所述通過(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)行解碼的步驟。
4.如權(quán)利要求1所述的方法,其特征在于,所述播放緩沖區(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ù)。
5.如權(quán)利要求1所述的方法,其特征在于,所述第三方多媒體播放框架為快速動(dòng)態(tài)圖像專家組FFmpeg。
6.一種多媒體文件的播放裝置,其特征在于,所述裝置包括:
第一確定模塊,用于當(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)多媒體文件。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括:
第二確定模塊,用于確定所述目標(biāo)多媒體文件的類型;
第一判斷模塊,用于基于所述目標(biāo)多媒體文件的類型,判斷所述預(yù)置的多媒體播放框架支持所述目標(biāo)多媒體文件的解析還是所述第三方媒體播放框架支持所述目標(biāo)多媒體文件的解析;
第一觸發(fā)模塊,用于當(dāng)所述第三方多媒體播放框架支持所述目標(biāo)多媒體文件的解析時(shí),觸發(fā)所述解析模塊通過(guò)第三方多媒體播放框架中的解析功能,對(duì)所述目標(biāo)多媒體文件進(jìn)行解析,得到多媒體數(shù)據(jù)。
8.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括:
第三確定模塊,用于確定所述多媒體數(shù)據(jù)的格式;
第二判斷模塊,用于基于所述多媒體數(shù)據(jù)的格式,判斷所述預(yù)置的多媒體播放框架支持所述多媒體數(shù)據(jù)的解碼還是所述第三方媒體播放框架支持所述多媒體數(shù)據(jù)的解碼;
第二觸發(fā)模塊,用于當(dāng)所述第三方多媒體播放框架支持支持所述多媒體數(shù)據(jù)的解碼時(shí),觸發(fā)所述解碼模塊通過(guò)所述第三方多媒體播放框架中的解碼功能,對(duì)所述多媒體數(shù)據(jù)進(jìn)行解碼。
9.如權(quán)利要求6所述的裝置法,其特征在于,所述播放緩沖區(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ù)。
10.如權(quán)利要求6所述的裝置,其特征在于,所述第三方多媒體播放框架為快速動(dòng)態(tài)圖像專家組FFmpeg。
11.一種多媒體文件的播放裝置,其特征在于,所述裝置包括:
處理器;
用于存儲(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)多媒體文件。