本發明涉及終端技術領域,尤其涉及播放開/關機動畫的方法、終端及計算機可讀存儲介質。
背景技術:
隨著android系統的發展,其支持平臺已從手機逐漸擴展到智能電視、數碼相機、游戲機等其他智能終端。雖然目前android提供了統一標準的許多功能,但是由于平臺性能差異性(如處理器性能),導致在不同平臺上播放同樣的開/關機動畫資源文件,其表現出來的效果會有很大差異,比如對于某一開/關機動畫資源包,其動畫資源描述文件中設定的播放幀率是固定的,當該播放幀率超過平臺處理器所能播放的最大幀率時,就會導致播放卡頓和播放時間過長的問題,影響了用戶體驗,雖然對于同一動畫資源,可以針對平臺的不同而配置不同的動畫資源描述文件,但這樣做的維護成本較高。
技術實現要素:
本發明的主要目的在于提出一種播放開/關機動畫的方法、終端及計算機可讀存儲介質,旨在解決android開/關機動畫在不同平臺上,由于平臺性能差異性而導致的播放卡頓和播放時間過長的問題。
為實現上述目的,本發明提供一種播放開/關機動畫的方法,所述播放開/關機動畫的方法包括如下步驟:
獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;
判斷所述原播放幀率是否大于預設的終端最大播放幀率;
若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;
根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。
可選地,若所述原播放幀率小于或等于預設的終端最大播放幀率,則根據所述原播放幀率和所述原圖像序列播放所述待播放的開/關機動畫。
可選地,對所述資源文件進行解析,得到所述待播放的開/關機動畫的播放時長;
根據所述播放時長和所述終端最大播放幀率計算需從所述原圖像序列中抽取的圖像數量;
從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
可選地,按照預設的抽取間隔從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
可選地,將所述新的圖像序列和所述終端最大播放幀率設置為默認值;
在后續所述終端開/關機時,根據所述默認值播放所述待播放的開/關機動畫。
此外,為實現上述目的,本發明還提供一種終端,所述終端包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的播放開/關機動畫的程序,所述播放開/關機動畫的程序被所述處理器執行時實現如下步驟:
獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;
判斷所述原播放幀率是否大于預設的終端最大播放幀率;
若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;
根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。
可選地,所述播放開/關機動畫的程序被所述處理器執行時還實現如下步驟:
若所述原播放幀率小于或等于預設的終端最大播放幀率,則根據所述原播放幀率和所述原圖像序列播放所述待播放的開/關機動畫。
可選地,所述播放開/關機動畫的程序被所述處理器執行時還實現如下步驟:
對所述資源文件進行解析,得到所述待播放的開/關機動畫的播放時長;
根據所述播放時長和所述終端最大播放幀率計算需從所述原圖像序列中抽取的圖像數量;
從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
可選地,所述播放開/關機動畫的程序被所述處理器執行時還實現如下步驟:
按照預設的抽取間隔從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
此外,為實現上述目的,本發明還提供一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有播放開/關機動畫的程序,所述播放開/關機動畫的程序被處理器執行時實現如下步驟:
獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;
判斷所述原播放幀率是否大于預設的終端最大播放幀率;
若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;
根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。
本發明獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;判斷所述原播放幀率是否大于預設的終端最大播放幀率;若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。通過上述方式,在待播放的開/關機動畫的原播放幀率超過終端所能播放的最大幀率時,終端從待播放的開/關機動畫的原圖像序列抽取一部分以組成新的圖像序列,然后按照自身最大播放幀率播放該新的圖像序列,從而能夠避免播放卡頓和播放時間過長的問題;此外,終端上述自適應播放方式使得管理人員不必對于同一動畫資源,針對平臺的不同而配置不同的動畫資源描述文件,從而減少了維護成本。
附圖說明
圖1是本發明實施例方案涉及的硬件運行環境的終端結構示意圖;
圖2為本發明播放開/關機動畫的方法第一實施例的流程示意圖;
圖3為本發明播放開/關機動畫的方法第二實施例的流程示意圖;
圖4為本發明播放開/關機動畫的方法第三實施例的流程示意圖。
本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
本發明實施例的主要解決方案是:獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;判斷所述原播放幀率是否大于預設的終端最大播放幀率;若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。
現有技術中,由于平臺性能差異性(如處理器性能),導致在不同平臺上播放同樣的開/關機動畫資源文件,其表現出來的效果會有很大差異,比如對于某一開/關機動畫資源包,其動畫資源描述文件中設定的播放幀率是固定的,當該播放幀率超過平臺處理器所能播放的最大幀率時,就會導致播放卡頓和播放時間過長的問題,影響了用戶體驗,雖然對于同一動畫資源,可以針對平臺的不同而配置不同的動畫資源描述文件,但這樣做的維護成本較高。
本發明在待播放的開/關機動畫的原播放幀率超過終端所能播放的最大幀率時,終端從待播放的開/關機動畫的原圖像序列抽取一部分以組成新的圖像序列,然后按照自身最大播放幀率播放該新的圖像序列,從而能夠避免播放卡頓和播放時間過長的問題;此外,終端上述自適應播放方式使得管理人員不必對于同一動畫資源,針對平臺的不同而配置不同的動畫資源描述文件,從而減少了維護成本。
本發明提供一種播放開/關機動畫的方法。
如圖1所示,圖1是本發明實施例方案涉及的硬件運行環境的終端結構示意圖。
本發明實施例終端可以是pc,也可以是智能手機、平板電腦、便攜計算機、智能電視、數碼相機、游戲機等具有顯示功能的可移動式終端設備。
如圖1所示,該設備可以包括:處理器1001,例如cpu,網絡接口1004,用戶接口1003,存儲器1005,通信總線1002。其中,通信總線1002用于實現這些組件之間的連接通信。用戶接口1003可以包括顯示屏(display)、輸入單元比如鍵盤(keyboard),可選用戶接口1003還可以包括標準的有線接口、無線接口。網絡接口1004可選的可以包括標準的有線接口、無線接口(如wi-fi接口)。存儲器1005可以是高速ram存儲器,也可以是穩定的存儲器(non-volatilememory),例如磁盤存儲器。存儲器1005可選的還可以是獨立于前述處理器1001的存儲裝置。
可選地,終端還可以包括攝像頭、rf(radiofrequency,射頻)電路,傳感器、音頻電路、wifi模塊等等。其中,傳感器比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環境光傳感器及接近傳感器,其中,環境光傳感器可根據環境光線的明暗來調節顯示屏的亮度,接近傳感器可在移動終端移動到耳邊時,關閉顯示屏和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別移動終端姿態的應用(比如橫豎屏切換、相關游戲、磁力計姿態校準)、振動識別相關功能(比如計步器、敲擊)等;當然,移動終端還可配置陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
本領域技術人員可以理解,圖1中示出的終端結構并不構成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
如圖1所示,作為一種計算機存儲介質的存儲器1005中可以包括操作系統、網絡通信模塊、用戶接口模塊以及播放開/關機動畫的程序。
在圖1所示的終端中,網絡接口1004主要用于連接后臺服務器,與后臺服務器進行數據通信;用戶接口1003主要用于連接客戶端(用戶端),與客戶端進行數據通信;而處理器1001可以用于調用存儲器1005中存儲的播放開/關機動畫的程序,并執行以下操作:
獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;
判斷所述原播放幀率是否大于預設的終端最大播放幀率;
若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;
根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。
進一步地,處理器1001可以調用存儲器1005中存儲的播放開/關機動畫的程序,還執行以下操作:
若所述原播放幀率小于或等于預設的終端最大播放幀率,則根據所述原播放幀率和所述原圖像序列播放所述待播放的開/關機動畫。
進一步地,處理器1001可以調用存儲器1005中存儲的播放開/關機動畫的程序,還執行以下操作:
對所述資源文件進行解析,得到所述待播放的開/關機動畫的播放時長;
根據所述播放時長和所述終端最大播放幀率計算需從所述原圖像序列中抽取的圖像數量;
從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
進一步地,處理器1001可以調用存儲器1005中存儲的播放開/關機動畫的程序,還執行以下操作:
按照預設的抽取間隔從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
進一步地,處理器1001可以調用存儲器1005中存儲的播放開/關機動畫的程序,還執行以下操作:
將所述新的圖像序列和所述終端最大播放幀率設置為默認值;
在后續所述終端開/關機時,根據所述默認值播放所述待播放的開/關機動畫。
基于上述硬件結構,提出本發明播放開/關機動畫的方法實施例。
參照圖2,圖2為本發明播放開/關機動畫的方法第一實施例的流程示意圖,所述方法包括:
步驟s10,獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;
本實施例播放開/關機動畫的方法應用于不同的終端平臺,終端可以是pc,也可以是智能手機、平板電腦、便攜計算機、智能電視、數碼相機、游戲機等具有顯示功能的可移動式終端設備,且終端設有開/關機動畫。
首先,終端在開/關機時,獲取待播放的開/關機動畫的資源文件,該資源文件可以是終端系統自帶的,也可以通過網絡從服務端下載得到,比如對于android手機,其開機動畫的資源文件為bootanimation.zip,而其關機動畫的資源文件為shutanimation.zip。然后,終端對獲取到的資源文件進行解析,得到該待播放的開/關機動畫的原播放幀率和原圖像序列,其中,原播放幀率即開/關機動畫每秒顯示的幀數,原圖像序列即由幀圖像組成的序列,原播放幀率和原圖像序列構成了該待播放的開/關機動畫的基本播放標準,如對于某一開/關機動畫,其原播放幀率為20幀/s,原圖像序列為1~100幀,則播放標準為100幀圖像按序以20幀/s的速率進行播放。
步驟s20,判斷所述原播放幀率是否大于預設的終端最大播放幀率;
該步驟中,終端判斷解析得到的原播放幀率是否大于預設的終端最大播放幀率,其中,預設的終端最大播放幀率即終端系統允許的最大播放幀率。由于不同終端的軟硬件差異,其所允許的最大播放幀率不盡相同,如智能手機的最大播放幀率一般為50~75幀/s,而智能電視的最大播放幀率一般為20~30幀/s。
步驟s30,若所述原播放幀率大于預設的終端最大播放幀率,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;
當終端的播放能力不足以滿足該開/關機動畫的播放標準時,將會導致播放卡頓和播放時間過長的問題,因而,當終端判定解析得到的原播放幀率大于預設的終端最大播放幀率時,從原圖像序列中抽取若干圖像以組成新的圖像序列,其中,新的圖像序列中的圖像數量小于原圖像序列中的圖像數量,由此減少該開/關機動畫的播放幀數,減少播放時間。
步驟s40,根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。
該步驟中,終端根據該新的圖像序列和終端最大播放幀率播放待播放的開/關機動畫。需要說明的是,由于人眼的視覺暫留,播放幀數的適當減少并不會影響人的感官體驗,本實施例終端根據新的圖像序列和終端最大播放幀率播放待播放的開/關機動畫,不僅能夠有效緩解卡頓和播放時間較長的問題,而且能夠保證原圖像序列被最大限度地利用,從而開/關機動畫被最大限度還原,在不影響用戶感官的情況下提升了用戶體驗。
在本實施例中,終端獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;判斷所述原播放幀率是否大于預設的終端最大播放幀率;若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。通過上述方式,在待播放的開/關機動畫的原播放幀率超過終端所能播放的最大幀率時,終端從待播放的開/關機動畫的原圖像序列抽取一部分以組成新的圖像序列,然后按照自身最大播放幀率播放該新的圖像序列,從而能夠避免播放卡頓和播放時間過長的問題;此外,終端上述自適應播放方式使得管理人員不必對于同一動畫資源,針對平臺的不同而配置不同的動畫資源描述文件,從而減少了維護成本。
進一步地,參照圖3,圖3為本發明播放開/關機動畫的方法第二實施例的流程示意圖。基于上述圖2所示的實施例,在步驟s20之后,還可以包括:
步驟s50,若所述原播放幀率小于或等于預設的終端最大播放幀率,則根據所述原播放幀率和所述原圖像序列播放所述待播放的開/關機動畫。
在本實施例中,若解析得到的原播放幀率小于或等于預設的終端最大播放幀率,則說明終端的播放能力足以滿足該開/關機動畫的播放標準,此時終端根據解析得到的原播放幀率和原圖像序列播放該待播放的開/關機動畫,即實現了開/關機動畫的正常播放。
進一步地,參照圖4,圖4為本發明播放開/關機動畫的方法第三實施例的流程示意圖。基于上述圖2所示的實施例,步驟s30可以包括:
步驟s31,對所述資源文件進行解析,得到所述待播放的開/關機動畫的播放時長;
步驟s32,根據所述播放時長和所述終端最大播放幀率計算需從所述原圖像序列中抽取的圖像數量;
步驟s33,從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
在本實施例中,終端從原圖像序列中抽取若干幀圖像以組成新的圖像序列的方式為:首先對待播放的開/關機動畫的資源文件進行進一步解析,得到待播放的開/關機動畫的播放時長,然后,根據該播放時長和終端的最大播放幀率計算需從所述原圖像序列中抽取的圖像數量,之后,從原圖像序列中抽取計算得到的圖像數量的圖像,以組成新的圖像序列。
比如,待播放的開/關機動畫的播放時長為3s,原圖像序列為1~60幀,原播放幀率為20幀/s,而終端的最大播放幀率為15幀/s,則此時需要從原圖像序列中抽取的圖像數量為15*3,即45幀,由此能夠保證這45幀圖像在3s之內播放完成,既滿足了播放時長的要求,又不會出現卡頓現象。
需要說明的是,根據動畫播放時長和終端最大播放幀率計算需從原圖像序列中抽取的圖像數量,可以在滿足動畫播放時長的前提下,實現從原圖像序列中抽取的圖像數量最多,從而減少丟幀,保證動畫的流暢度。
當然,也可以不根據終端最大播放幀率計算需從原圖像序列中抽取的圖像數量,比如,待播放的開/關機動畫的播放時長為3s,以14幀/s作為終端的播放視頻的播放幀率,此時需要從原圖像序列中抽取的圖像數量為14*3,即42幀,具體實施時抽取的圖像數量的計算方式可根據實際需要進行靈活設置。
進一步地,上述步驟s33可以包括:
步驟s331,按照預設的抽取間隔從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
從原圖像序列中抽取圖像時,終端可以按照預設的抽取間隔進行抽取,比如按照圖像序列的排列順序,依次從每4幀圖像中抽取3幀,如此得到3*15,即45幀圖像,形成新的圖像序列。
在本實施例中,根據待播放的開/關機動畫的播放時長和終端最大播放幀率計算需從所述原圖像序列中抽取的圖像數量,進而進行圖像抽取,既滿足了播放時長的要求,又不會出現卡頓現象;而按照預設的抽取間隔進行抽取,能夠保證均勻抽取,避免了由于抽取不當而導致的播放卡頓現象。
進一步地,基于上述的實施例,在步驟s40之后,還可以包括:
步驟s60,將所述新的圖像序列和所述終端最大播放幀率設置為默認值;
步驟s70,在后續所述終端開/關機時,根據所述默認值播放所述待播放的開/關機動畫。
在本實施例中,終端可以自動將新的圖像序列和終端最大播放幀率設置為默認值,也可以接收用戶的設置指令以將新的圖像序列和終端最大播放幀率設置為默認值,如此在后續終端開/關機時,可以直接根據設置的默認值播放待播放的開/關機動畫,提高了開/關機動畫的播放效率。
本發明還提供一種終端。
本發明終端包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的播放開/關機動畫的程序,所述播放開/關機動畫的程序被所述處理器執行時實現下步驟:
獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;
判斷所述原播放幀率是否大于預設的終端最大播放幀率;
若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;
根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。
進一步地,所述播放開/關機動畫的程序被所述處理器執行時還實現下步驟:
若所述原播放幀率小于或等于預設的終端最大播放幀率,則根據所述原播放幀率和所述原圖像序列播放所述待播放的開/關機動畫。
進一步地,所述播放開/關機動畫的程序被所述處理器執行時還實現下步驟:
對所述資源文件進行解析,得到所述待播放的開/關機動畫的播放時長;
根據所述播放時長和所述終端最大播放幀率計算需從所述原圖像序列中抽取的圖像數量;
從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
進一步地,所述播放開/關機動畫的程序被所述處理器執行時還實現下步驟:
按照預設的抽取間隔從所述原圖像序列中抽取計算得到的所述圖像數量的圖像,以組成新的圖像序列。
其中,在所述處理器上運行的播放開/關機動畫的程序被執行時所實現的方法可參照本發明播放開/關機動畫的方法實施例,此處不再贅述。
本發明還提供一種計算機可讀存儲介質。
本發明計算機可讀存儲介質上存儲有播放開/關機動畫的程序,所述播放開/關機動畫的程序被處理器執行時實現如下步驟:
獲取待播放的開/關機動畫的資源文件,對所述資源文件進行解析,得到所述待播放的開/關機動畫的原播放幀率和原圖像序列;
判斷所述原播放幀率是否大于預設的終端最大播放幀率;
若是,則從所述原圖像序列中抽取若干幀圖像以組成新的圖像序列;
根據所述新的圖像序列和所述終端最大播放幀率播放所述待播放的開/關機動畫。
其中,在所述處理器上運行的播放開/關機動畫的程序被執行時所實現的方法可參照本發明播放開/關機動畫的方法實施例,此處不再贅述。
需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者系統不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者系統所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者系統中還存在另外的相同要素。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在如上所述的一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,空調器,或者網絡設備等)執行本發明各個實施例所述的方法。
以上僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。