本技術(shù)涉及多媒體,特別涉及一種多媒體文件播放方法、可讀存儲介質(zhì)和設(shè)備。
背景技術(shù):
1、設(shè)備播放多媒體文件時,一幀數(shù)據(jù)一般需要依次經(jīng)過讀取、解析、解碼、渲染等處理后,才能進(jìn)行輸出。例如,對于視頻文件,設(shè)備先要讀一幀數(shù)據(jù);然后將該幀數(shù)據(jù)解析為視頻數(shù)據(jù)和音頻數(shù)據(jù);其次,分別對視頻數(shù)據(jù)、音頻數(shù)據(jù)進(jìn)行解碼和渲染得到能夠輸出到輸出設(shè)備的圖像輸出數(shù)據(jù)和聲音輸出數(shù)據(jù);最后對圖像輸出數(shù)據(jù)和聲音輸出數(shù)據(jù)進(jìn)行同步后將圖像輸出數(shù)據(jù)輸出到顯示設(shè)備、將聲音輸出數(shù)據(jù)輸出到放音設(shè)備。也就是說,對于任意一幀數(shù)據(jù),設(shè)備在讀取到該幀數(shù)據(jù)后都需要依次經(jīng)過前述處理才能輸出到對應(yīng)的輸出設(shè)備,期間需要耗費時間。
2、而一般情況下,設(shè)備在循環(huán)播放多媒體文件時,例如循環(huán)播放視頻文件時,通常是在顯示完視頻文件的最后一幀圖像后,再重新播放該視頻文件。由于視頻文件的第一幀圖像要經(jīng)過上述處理才能輸出到設(shè)備的顯示屏,從最后一幀圖像顯示完到第一幀圖像顯示在顯示屏期間,設(shè)備的顯示屏沒有新的圖像可以顯示。如此,設(shè)備循環(huán)在播放該視頻文件時,顯示屏顯示的畫面會出現(xiàn)不連慣的情況,影響用戶體驗。
技術(shù)實現(xiàn)思路
1、有鑒于此,本技術(shù)提供一種多媒體文件播放方法、可讀存儲介質(zhì)和設(shè)備,該方法可以實現(xiàn)多媒體文件的無縫循環(huán)播放。
2、第一方面提供一種多媒體文件播放方法,該方法包括:設(shè)備循環(huán)播放多媒體文件時,設(shè)備在第k個輸出周期讀取多媒體文件的第k幀數(shù)據(jù),在第k個輸出周期到第k+q-1個輸出周期對讀取的第k幀數(shù)據(jù)進(jìn)行處理,在第k+q個輸出周期輸出第k幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù),其中,q為大于0的整數(shù),k為大于0且小于n的整數(shù),其中,n是多媒體文件包括的數(shù)據(jù)的幀數(shù);設(shè)備在第n個輸出周期讀取多媒體文件的第n幀數(shù)據(jù),輸出多媒體文件的第n-q幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù);設(shè)備在第n+1個輸出周期讀取多媒體文件的第1幀數(shù)據(jù),輸出多媒體文件的第n-q+1幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù);設(shè)備在第n+q個輸出周期讀取多媒體文件的第q幀數(shù)據(jù),輸出多媒體文件的第n幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù);設(shè)備在第n+q+1個輸出周期讀取多媒體文件的第q+1幀數(shù)據(jù),輸出多媒體文件的第1幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)。
3、該方法中,設(shè)備在循環(huán)播放多媒體文件時,在相鄰的周期(第n個輸出周期和第n+1個輸出周期)分別讀取多媒體文件的最后一幀數(shù)據(jù)和第1幀數(shù)據(jù),并在相鄰的周期(第n+q個輸出周期和第n+q+1個輸出周期)分別輸出多媒體文件的最后一幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)和第1幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)?;谏鲜龇椒ǎO(shè)備在循環(huán)播放多媒體文件的過程中,最后一幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)和第1幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)是在相鄰的兩個輸出周期連續(xù)出的。如此,避免了循環(huán)播放多媒體文件時出現(xiàn)卡頓、白屏或黑屏等情況,實現(xiàn)了多媒體文件的無縫循環(huán)播放。
4、在上述第一方面的一種可能實現(xiàn)中,上述多媒體文件為視頻文件,第1幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)包括第一圖像輸出數(shù)據(jù)和第一音頻輸出數(shù)據(jù);并且設(shè)備在第n+q+1個輸出周期讀取多媒體文件的第q+1幀數(shù)據(jù),輸出多媒體文件的第1幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù),包括:設(shè)備在輸出多媒體文件的第n幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)后,更新同步基準(zhǔn)時間,同步基準(zhǔn)時間用于指示多媒體文件的起始播放時間;設(shè)備基于同步基準(zhǔn)時間同步第一圖像數(shù)據(jù)和第一音頻數(shù)據(jù),并在第n+q+1個輸出周期輸出第一圖像輸出數(shù)據(jù)和第一音頻輸出數(shù)據(jù)。
5、也就是說,設(shè)備在輸出多媒體文件的最后一幀數(shù)據(jù)(第n幀數(shù)據(jù))對應(yīng)的輸出數(shù)據(jù)后,可以更新同步基準(zhǔn)時間。如此,設(shè)備可以基于更新后的同步基準(zhǔn)時間,對第1幀數(shù)據(jù)對應(yīng)的第一圖像輸出數(shù)據(jù)和第一音頻輸出數(shù)據(jù)進(jìn)行同步,避免第一圖像輸出數(shù)據(jù)和第一音頻輸出數(shù)據(jù)不同步。
6、在上述第一方面的一種可能實現(xiàn)中,上述設(shè)備在第n個輸出周期讀取多媒體文件的第n幀數(shù)據(jù),包括:設(shè)備在讀取多媒體文件的第n幀數(shù)據(jù)后,不向播放多媒體文件的應(yīng)用程序上報多媒體文件的讀取結(jié)束消息。
7、應(yīng)理解,多媒體文件的讀取結(jié)束消息,用于指示設(shè)備在對多媒體文件的最后一幀數(shù)據(jù)進(jìn)行處理后,不再進(jìn)行后續(xù)數(shù)據(jù)的處理,結(jié)束多媒體文件的播放。設(shè)備在讀取多媒體文件的第n幀數(shù)據(jù)后,不向播放多媒體文件的應(yīng)用程序上報多媒體文件的讀取結(jié)束消息,可以使得設(shè)備繼續(xù)對后續(xù)數(shù)據(jù)(多媒體文件的第1幀數(shù)據(jù))進(jìn)行處理,實現(xiàn)多媒體文件的無縫循環(huán)播放。
8、在上述第一方面的一種可能實現(xiàn)中,上述方法還包括:設(shè)備在第n+q+2個輸出周期到第n+q+n個輸出周期,依次輸出多媒體文件的第2幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)至多媒體文件的第n幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)。
9、在上述第一方面的一種可能實現(xiàn)中,上述方法還包括:設(shè)備在第n+1個輸出周期到第n+q個輸出周期對多媒體文件的第1幀數(shù)據(jù)進(jìn)行處理,得到第1幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)。
10、在上述第一方面的一種可能實現(xiàn)中,上述設(shè)備在第n+1個輸出周期到第n+q個輸出周期對多媒體文件的第1幀數(shù)據(jù)進(jìn)行處理,至少包括:設(shè)備在第n+1個輸出周期讀到第n+q個輸出周期對第1幀數(shù)據(jù)進(jìn)行解析、解碼和渲染。
11、在上述第一方面的一種可能實現(xiàn)中,上述設(shè)備是通過第一應(yīng)用播放多媒體文件;并且設(shè)備在第n個輸出周期讀取多媒體文件的第n幀數(shù)據(jù),包括:第一應(yīng)用在第n個輸出周期讀取多媒體文件的第n幀數(shù)據(jù)。
12、應(yīng)理解,在一些實現(xiàn)方式中,多媒體文件的每幀數(shù)據(jù)對應(yīng)的輸出數(shù)據(jù)也可以由第一應(yīng)用輸出。
13、在上述第一方面的一種可能實現(xiàn)中,上述設(shè)備在第n+1個輸出周期讀取多媒體文件的第1幀數(shù)據(jù),包括:第一應(yīng)用在第n+1個輸出周期讀取多媒體文件的第1幀數(shù)據(jù)。
14、也就是說,本技術(shù)提供的多媒體文件播放方法的指令可以嵌入于第一應(yīng)用中,使得第一應(yīng)用可以通過本技術(shù)提供的方法播放多媒體文件。
15、在上述第一方面的一種可能實現(xiàn)中,上述設(shè)備的操作系統(tǒng)包括框架層,框架層包括第一模塊;并且,設(shè)備在第n個輸出周期讀取多媒體文件的第n幀數(shù)據(jù),包括:第一模塊在第n個輸出周期讀取多媒體文件的第n幀數(shù)據(jù)。
16、也就是說,本技術(shù)提供的多媒體文件播放方法的指令可以嵌入于第一模塊(例如下文中的讀取解析模塊)中,使得設(shè)備上播放多媒體文件的應(yīng)用程序都可以通過第一模塊來實現(xiàn)通過本技術(shù)提供的方法播放多媒體文件。
17、在上述第一方面的一種可能實現(xiàn)中,上述設(shè)備在第n+1個輸出周期讀取多媒體文件的第1幀數(shù)據(jù),包括:第一模塊在第n+1個輸出周期讀取多媒體文件的第1幀數(shù)據(jù)。
18、第二方面提供一種可讀存儲介質(zhì),該可讀存儲介質(zhì)中包括指令,該指令在被設(shè)備執(zhí)行時,使設(shè)備實現(xiàn)上述第一方面及上述第一方面的任意一種可能實現(xiàn)提供的多媒體文件播放方法。
19、第三方面提供一種設(shè)備,該設(shè)備包括:存儲器,用于存儲指令;處理器,用于執(zhí)行指令以使設(shè)備實現(xiàn)上述第一方面及上述第一方面的任意一種可能實現(xiàn)提供的多媒體文件播放方法。
20、第四方面提供一種程序產(chǎn)品,該程序產(chǎn)品在設(shè)備上運行時,使設(shè)備實現(xiàn)上述第一方面及上述第一方面的任意一種可能實現(xiàn)提供的多媒體文件播放方法。
21、第五方面提供一種芯片或芯片系統(tǒng),包括處理模塊與通信接口,該處理模塊用于執(zhí)行上述第一方面及上述第一方面的任意一種可能實現(xiàn)提供的多媒體文件播放方法。
22、應(yīng)理解,上述第二方面至第五方面的有益效果可以參考上述第一方面的描述,在此不做贅述。