本發(fā)明涉及視頻技術領域,具體涉及一種視頻播放方法及裝置。
背景技術:
隨著智能手機、平板電腦等移動終端的普及,越來越多的用戶采用移動終端觀看視頻(在線視頻或本地視頻),因此如何優(yōu)化視頻在移動終端上的播放,已成為技術人員關注的技術點。
為在移動終端上觀看視頻,用戶需要先在移動終端上安裝視頻播放應用(如視頻應用客戶端,具有視頻播放組件的瀏覽器等);視頻播放應用一般提供有在線視頻和本地視頻的播放功能,具體的,視頻播放應用通過搜索或推薦可展示在線視頻,以便用戶選擇感興趣的在線視頻,視頻播放應用通過搜索移動終端的本地數(shù)據(jù)庫也可展示本地視頻,以便用戶選擇感興趣的本地視頻;當用戶選擇感興趣的視頻后,視頻播放應用將使用內(nèi)部的視頻播放引擎播放視頻,并提供視頻播放應用界面顯示用戶所選擇的視頻,以實現(xiàn)在移動終端上播放視頻;視頻播放應用界面為視頻播放界面中用于顯示需播放的視頻的區(qū)域,視頻播放界面還包括視頻播放控制界面,視頻播放控制界面主要用于設置控制視頻播放的圖標等控件。
本發(fā)明的發(fā)明人在研究過程中發(fā)現(xiàn),由于大部分的移動終端僅支持單屏運行一個應用,并無法像PC(個人計算機)同屏運行多個應用,因此在移動終端播放視頻時,如果用戶由于需要進行與好友聊天、收發(fā)郵件等操作,使得移動終端的當前界面切換為非視頻播放應用界面后,移動終端將無法繼續(xù)播放視頻;
然而,用戶往往存在在非視頻播放應用界面播放視頻的需求,從而達成在非視頻播放應用界面邊觀看視頻,邊實現(xiàn)與好友聊天、收發(fā)郵件等其他操作的目的;可見,為滿足用戶的此種需求,移動終端如何在非視頻播放應用界面實現(xiàn)視頻播放,成為了本領域技術人員需要考慮的問題。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供一種視頻播放方法及裝置,以在非視頻播放應用界面實現(xiàn)視頻播放,為用戶在移動終端上邊觀看視頻,邊實現(xiàn)其他操作提供可能。
為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術方案:
一種視頻播放方法,應用于移動終端,所述方法包括:
若在視頻播放界面檢測到用戶操作與設定操作相應,控制視頻播放引擎停止播放視頻,并從視頻播放應用界面移除顯示視頻的SurfaceView;
通過WindowManager將所移除的SurfaceView掛載在所述移動終端的屏幕頂層懸浮顯示;
控制視頻播放引擎播放視頻,并利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻。
本發(fā)明實施例還提供一種視頻播放裝置,應用于移動終端,所述裝置包括:
第一View移除模塊,用于若在視頻播放界面檢測到用戶操作與設定操作相應,控制視頻播放引擎停止播放視頻,并從視頻播放應用界面移除顯示視頻的SurfaceView;
View懸浮顯示模塊,用于通過WindowManager將所移除的SurfaceView掛載在所述移動終端的屏幕頂層懸浮顯示;
播放模塊,用于控制視頻播放引擎播放視頻,并利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻。
基于上述技術方案,本發(fā)明實施例在視頻播放界面檢測到用戶操作與設定操作相應時,移動終端可控制視頻播放引擎停止播放視頻,并從視頻播放應用界面移除顯示視頻的SurfaceView;通過WindowManager將所移除的SurfaceView掛載在所述移動終端的屏幕頂層懸浮顯示;進而控制視頻播放引擎播放視頻,并利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻,實現(xiàn)視頻的播放。由于掛載在屏幕頂層懸浮顯示的SurfaceView,無論移動終端的界面如何切換改變,只要掛載在屏幕頂層懸浮顯示的SurfaceView未關閉,則 屏幕頂層始終可維持顯示有可顯示視頻的SurfaceView,通過掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻,則可達到在非視頻播放應用界面播放視頻的效果,為用戶邊通過懸浮顯示的SurfaceView觀看視頻,邊進行如聊天、收發(fā)郵件等其他操作提供了可能。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的視頻播放方法的流程圖;
圖2為本發(fā)明實施例提供的將SurfaceView懸浮顯示于屏幕頂層的方法流程圖;
圖3為本發(fā)明實施例提供的視頻播放方法的另一流程圖;
圖4為本發(fā)明實施例提供的返回以視頻播放應用界面播放視頻的方法流程圖;
圖5為本發(fā)明實施例提供的視頻播放裝置的結(jié)構框圖;
圖6為本發(fā)明實施例提供的View懸浮顯示模塊的結(jié)構框圖;
圖7為本發(fā)明實施例提供的視頻播放裝置的另一結(jié)構框圖;
圖8為本發(fā)明實施例提供的視頻播放裝置的再一結(jié)構框圖;
圖9為本發(fā)明實施例提供的視頻播放裝置的又一結(jié)構框圖;
圖10為本發(fā)明實施例提供的移動終端的硬件結(jié)構框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供的視頻播放方法,主要是在移動終端的屏幕頂層設置懸浮顯示的可用于顯示視頻的View(視圖),通過該置于屏幕頂層懸浮顯示 的View顯示視頻,從而達到可不在視頻播放應用提供的視頻播放應用界面播放視頻的效果,進而為用戶在移動終端上邊觀看視頻,邊實現(xiàn)其他操作提供可能。
基于此思想,圖1示出了本發(fā)明實施例提供的視頻播放方法的流程圖,該視頻播放方法可應用于智能手機、平板電腦等移動終端,參照圖1,該方法可以包括:
步驟S100、若在視頻播放界面檢測到用戶操作與設定操作相應,控制視頻播放引擎停止播放視頻,并從視頻播放應用界面移除顯示視頻的SurfaceView;
SurfaceView是View的子類,SurfaceView在創(chuàng)建的時候內(nèi)嵌有對應Surface;Surface是安卓系統(tǒng)中管理顯示內(nèi)容數(shù)據(jù)的邏輯實體,其功能包括緩存數(shù)據(jù)、交換數(shù)據(jù)等,在本發(fā)明實施例中,Surface可緩存有需要進行播放的視頻數(shù)據(jù)(如視頻幀);SurfaceView通過刷新對應的Surface中緩存的視頻數(shù)據(jù),可在SurfaceView中顯示視頻;
在本發(fā)明實施例中,當通過視頻播放應用提供的視頻播放應用界面顯示視頻時,所創(chuàng)建的該視頻播放應用界面綁定的SurfaceView將掛載在視頻播放應用界面中;根據(jù)用戶選擇的需要播放的視頻,視頻播放應用的視頻播放引擎將把相應的視頻數(shù)據(jù)導入掛載在視頻播放應用界面的SurfaceView對應的Surface中,SurfaceView刷新對應Surface中緩存的視頻數(shù)據(jù),進而達到在視頻播放應用界面顯示視頻的目的;
值得注意的是,SurfaceView作為視圖的一類,僅具有顯示視頻的功能,視頻的播放主要由視頻播放引擎進行;視頻播放引擎將視頻數(shù)據(jù)緩存入Surface中,SurfaceView刷新Surface中緩存的視頻數(shù)據(jù),進而在視頻播放應用界面顯示視頻;
可選的,SurfaceView可全屏顯示視頻,也可以在視頻播放應用界面的部分區(qū)域顯示視頻;在全屏情況下,視頻播放應用界面將作為父窗口,SurfaceView填滿該父窗口,實現(xiàn)全屏播放;在視頻播放應用界面的部分區(qū)域播放視頻時,視頻播放應用界面的部分區(qū)域?qū)⒆鳛橐曨l播放區(qū)域,將SurfaceView填滿該部分區(qū)域,再刷新對應Surface中緩存的視頻數(shù)據(jù),則可達成視頻播放目的;
視頻播放界面可設置以懸浮View顯示視頻的圖標(圖標可以按鈕形式存在),具體可在視頻播放控制界面設置;當用戶點擊該圖標后,可認為在視頻播放界面檢測到設定操作,需要從視頻播放應用界面移除顯示視頻的SurfaceView;顯然,本發(fā)明實施例也可設置以懸浮View顯示視頻的快捷操作(快捷操作如設定觸控操作等),當在視頻播放界面檢測到用戶操作與該快捷操作對應時,則認為在視頻播放界面檢測到設定操作,需要從視頻播放應用界面移除顯示視頻的SurfaceView。
步驟S110、通過WindowManager將所移除的SurfaceView掛載在所述移動終端的屏幕頂層懸浮顯示;
在從視頻播放應用界面移除SurfaceView后,本發(fā)明實施例可將從視頻播放應用界面移除的SurfaceView懸浮顯示于移動終端的屏幕頂層;
本發(fā)明實施例設置SurfaceView可懸浮顯示于屏幕頂層的方式,主要通過WindowManager(窗口管理器)實現(xiàn);WindowManager是安卓系統(tǒng)中的服務接口,整個安卓系統(tǒng)的窗口機制就是基于WindowManager,WindowManager可以添加View到屏幕,也可以從屏幕移除View;WindowManager面向的對象一端是屏幕,另一端就是View;
需要注意的是,WindowManager是系統(tǒng)提供的可將View掛載到屏幕上顯示的工具,WindowManager是將View掛載到移動終端的屏幕上頂層懸浮顯示,而不是將View掛載到視頻播放應用的界面中頂層顯示;將View掛載到移動終端的屏幕上頂層懸浮顯示,可使得移動終端無論當前處于何界面,View仍然維持在屏幕上頂層懸浮顯示;而將View掛載到視頻播放應用的界面中顯示,則View僅可在視頻播放應用的界面中維持頂層顯示,一旦屏幕界面由視頻播放應用的界面切換到其他界面(如主界面,即時通信應用的界面等)時,View將在其他界面中移除,無法在其他界面中維持頂層顯示;因此通過WindowManager將View掛載到移動終端的屏幕上頂層懸浮顯示,與將View掛載到視頻播放應用的界面中頂層顯示在本質(zhì)上是不同的;
可選的,本發(fā)明實施例還可設置掛載在屏幕的SurfaceView的屬性,屬性如尺寸大小、透明度、可觸摸移動、頂層顯示等;在本發(fā)明實施例中,SurfaceView的屬性可在前期預先設置好,在掛載SurfaceView至屏幕時,可直接采用前期預先設置好的屬性,設置SurfaceView在屏幕頂層的顯示效果; SurfaceView的屬性也可在掛載SurfaceView至屏幕時現(xiàn)場由用戶設置;
本發(fā)明實施例通過WindowManager的addView方法可在移動終端的屏幕上掛載顯示從視頻播放應用界面移除的SurfaceView,根據(jù)所設置的SurfaceView的屬性,WindowManager掛載至屏幕顯示的SurfaceView的顯示效果也不同,如通過設置頂層顯示的屬性,可以實現(xiàn)掛載至屏幕的SurfaceView以懸浮窗口頂層顯示的效果;
掛載在屏幕頂層懸浮顯示的SurfaceView可覆蓋屏幕的部分區(qū)域,以使得用戶可通過屏幕中非SurfaceView覆蓋的區(qū)域進行其他操作。
步驟S120、控制視頻播放引擎播放視頻,并利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻。
在將SurfaceView掛載在屏幕頂層懸浮顯示后,本發(fā)明實施例可控制視頻播放引擎播放視頻,使得視頻播放引擎將視頻數(shù)據(jù)緩存入Surface中;由于SurfaceView顯示的內(nèi)容主要基于內(nèi)嵌的對應Surface中緩存的數(shù)據(jù),掛載在屏幕頂層懸浮顯示的SurfaceView可顯示對應Surface中緩存的視頻數(shù)據(jù),從而達到在屏幕頂層懸浮顯示的SurfaceView中顯示視頻播放應用界面原先播放的視頻的效果。
值得注意的是,原先在視頻播放應用界面中顯示視頻的SurfaceView,與后續(xù)被掛載在屏幕頂層懸浮顯示的SurfaceView為同一SurfaceView,只是SurfaceView掛載的位置和方式不同。
可以看出,由于SurfaceView被掛載在屏幕頂層懸浮顯示,無論移動終端的界面如何切換改變,只要在被掛載在屏幕頂層懸浮顯示的SurfaceView未關閉的情況下,屏幕頂層始終可維持顯示SurfaceView,從而通過掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻,達到在非視頻播放應用界面播放視頻的效果,為用戶邊通過屏幕頂層懸浮顯示的SurfaceView觀看視頻,邊進行如聊天、收發(fā)郵件等其他操作提供了可能。
在將SurfaceView掛載在屏幕頂層懸浮顯示的過程中,本發(fā)明實施例可通過WindowManager提供的管理View的服務接口,實現(xiàn)視頻播放應用界面移除的SurfaceView在屏幕上的掛載,進而根據(jù)所設置的SurfaceView的頂層顯示屬性,將掛載到屏幕的SurfaceView覆蓋在屏幕的頂層懸浮顯示;
對應的,圖2示出了本發(fā)明實施例提供的將SurfaceView懸浮顯示于屏幕頂 層的方法流程圖,參照圖2,該方法可以包括:
步驟S200、利用WindowManager的服務接口將所移除的SurfaceView掛載到所述移動終端的屏幕;
步驟S210、設置掛載到所述屏幕的SurfaceView,在所述屏幕的頂層懸浮顯示。
顯然,若SurfaceView所設置的屬性除頂層顯示外,還具有尺寸大小、透明度、可觸摸移動等其他屬性時,在將所移除的SurfaceView添加到屏幕時,還可設置SurfaceView對應的尺寸大小、透明度、可觸摸移動等其他屬性。
SurfaceView實現(xiàn)視頻播放的過程主要是SurfaceView在單位時間內(nèi)刷新對應Surface中緩存的多個視頻幀實現(xiàn),如每秒刷新25幀視頻幀(此處涉及的具體數(shù)值僅為示例說明)等;
對應的,在將視頻播放應用界面移除的SurfaceView掛載在屏幕頂層懸浮顯示后,本發(fā)明實施例可利用掛載在屏幕頂層懸浮顯示的SurfaceView刷新對應的Surface中緩存的視頻幀,從而達到以懸浮顯示的SurfaceView顯示視頻的目的。
可選的,掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻時,可以視頻播放應用界面已顯示的視頻位置開始,續(xù)播后續(xù)視頻,也可從頭開始播放視頻;
若以續(xù)播方式播放視頻,本發(fā)明實施例可在檢測到用戶操作與設定操作相應,需移除視頻播放應用界面的SurfaceView時,記錄所移除的SurfaceView已顯示的視頻位置(可選的,可在檢測到用戶操作與設定操作相應時,記錄所移除的SurfaceView刷新的視頻幀位置),從而在掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻時,以所記錄的視頻位置開始,顯示后續(xù)視頻(可選的,掛載在屏幕頂層懸浮顯示的SurfaceView可從所記錄的視頻幀位置開始,刷新后續(xù)視頻幀);
圖3示出了本發(fā)明實施例提供的視頻播放方法的另一流程圖,參照圖3,該方法可以包括:
步驟S300、若在視頻播放界面檢測到用戶操作與設定操作相應,控制視頻播放引擎停止播放視頻,并從所述視頻播放應用界面移除顯示視頻的SurfaceView,記錄所移除的SurfaceView刷新的視頻幀位置;
可選的,視頻幀位置可以視頻幀的播放時間表示。
步驟S310、利用WindowManager的服務接口將所移除的SurfaceView掛載到移動終端的屏幕,設置掛載到所述屏幕的SurfaceView,在所述屏幕的頂層懸浮顯示;
步驟S320、從所記錄的視頻幀位置開始,利用掛載在屏幕頂層懸浮顯示的SurfaceView刷新對應的Surface中緩存的后續(xù)視頻幀。
可選的,在利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻時,用戶可操作移動終端將屏幕界面切換到非視頻播放應用界面(如主界面,或其他應用界面),從而在非視頻播放應用界面執(zhí)行如聊天,收發(fā)郵件等其他操作;
顯然,在利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻時,用戶也可維持移動終端顯示視頻播放應用界面,從而在利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻時,用戶可在視頻播放應用界面執(zhí)行如查看視頻評論、搜索視頻等其他操作;
無論移動終端將屏幕界面切換到非視頻播放應用界面,還是維持顯示視頻播放應用界面,由于SurfaceView始終處于懸浮于屏幕頂層顯示的狀態(tài),因此SurfaceView可維持顯示于屏幕的第一區(qū)域;第一區(qū)域為屏幕中被SurfaceView占據(jù)的區(qū)域,第一區(qū)域的大小可與SurfaceView的區(qū)域大小一致,第一區(qū)域的大小也可根據(jù)SurfaceView的區(qū)域大小調(diào)整;
若檢測到用戶在屏幕的非第一區(qū)域的操作,則可以根據(jù)用戶的操作對象作相應的響應,執(zhí)行與所述操作對應的響應結(jié)果;如屏幕當前界面為主界面,用戶點擊了主界面中非第一區(qū)域所顯示的應用圖標,則可啟動該應用圖標對應的應用;
而用戶在第一區(qū)域的操作,可以視為是控制視頻播放的操作;對應的,若檢測到用戶在所述第一區(qū)域的操作,則可根據(jù)用戶操作對掛載在屏幕頂層懸浮顯示的SurfaceView所顯示的視頻作相應控制;如掛載在屏幕頂層懸浮顯示的SurfaceView可顯示播放、暫停圖標,若檢測到用戶點擊暫停圖標,則可暫停SurfaceView所顯示的視頻,若檢測到用戶點擊播放圖標,則可控制SurfaceView繼續(xù)顯示后續(xù)視頻。
可選的,掛載在屏幕頂層懸浮顯示的SurfaceView刷新視頻幀時,涉及到內(nèi)部視頻播放引擎和解碼器的視頻解碼工作;而在掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻時,由于用戶利用移動終端進行視頻聊天或者查看其它視頻文件時,可能存在播放非SurfaceView所顯示的視頻的其他視頻的情況;而SurfaceView刷新視頻幀所涉及的視頻解碼工作,與播放該其他視頻所涉及的視頻解碼工作相并行,為分擔視頻解碼壓力,SurfaceView涉及的視頻解碼方式,可與解碼該其他視頻涉及的視頻解碼方式不同;
具體的,本發(fā)明實施例若在利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻的過程中,檢測到移動終端設備需解碼非所述視頻的其他視頻,則以與解碼所述視頻不同的視頻解碼方式,解碼所述其他視頻;
如本發(fā)明實施例可以移動終端中設置的視頻解碼芯片解碼SurfaceView顯示的視頻,而在處理器中通過視頻解碼軟件解碼所述其他視頻。
可選的,本發(fā)明實施例還提供有由掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻,返回至以視頻播放應用界面播放視頻的機制;圖4示出了本發(fā)明實施例提供的返回以視頻播放應用界面播放視頻的方法流程圖,參照圖4,該方法可以包括:
步驟S400、若檢測到用戶操作與設定的返回以視頻播放應用界面播放視頻的操作相應時,控制視頻播放引擎停止播放視頻,并通過WindowManager將掛載在屏幕頂層懸浮顯示的SurfaceView從所述移動終端的屏幕中移除;
可選的,掛載在屏幕頂層懸浮顯示的SurfaceView可顯示返回圖標,若用戶點擊了該返回圖標,則可確定需返回以視頻播放應用界面播放視頻;顯然,也可設置返回以視頻播放應用界面播放視頻的快捷操作,當用戶操作與該快捷操作相應時,則可認為需返回以視頻播放應用界面播放視頻。
步驟S410、展示視頻播放界面;
步驟S420、將從屏幕中移除的SurfaceView掛載在視頻播放應用界面,并利用掛載在視頻播放應用界面的SurfaceView顯示所述視頻。
SurfaceView可以全屏或覆蓋視頻播放應用界面的部分區(qū)域的方式,顯示所述視頻。
優(yōu)選的,本發(fā)明實施例提供的視頻播放方法的流程可以如下:
用戶點擊視頻播放應用,并選中需播放的視頻后,移動終端將創(chuàng)建相應的視頻播放界面,并創(chuàng)建相應的用于顯示視頻的SurfaceView;在全屏播放模式下,SurfaceView可以視頻播放應用界面為父窗口,并填滿該父窗口,使得SurfaceView添加到視頻播放應用界面中顯示;
視頻播放應用進行視頻播放的初始化流程,視頻播放引擎將所選中的視頻的視頻幀緩存入Surface,SurfaceView刷新對應Surface中緩存的視頻幀,開始在SurfaceView以全屏方式顯示視頻;
若用戶點擊了視頻播放界面中顯示的以懸浮View顯示視頻的圖標(圖標可在視頻播放界面的視頻播放控制界面設置),則移動終端控制視頻播放引擎停止播放視頻,并從視頻播放應用界面中移除SurfaceView,記錄SurfaceView當前刷新的視頻幀位置;
設置需掛載在屏幕的SurfaceView的屬性,屬性至少包括頂層顯示;顯然,屬性還可包括尺寸大小、透明度、可觸摸移動等;移動終端通過WindowManager將從視頻播放應用界面移除的SurfaceView掛載在所述移動終端的屏幕,并設置掛載在屏幕的SurfaceView的顯示效果與所設置的屬性相應,使得SurfaceView掛載在所述移動終端的屏幕頂層懸浮顯示,;
移動終端控制視頻播放引擎播放視頻,通過掛載在屏幕頂層懸浮顯示的SurfaceView,從所記錄的視頻幀位置開始刷新對應的Surface中緩存的后續(xù)視頻幀,實現(xiàn)在懸浮顯示于屏幕頂層的SurfaceView中,顯示視頻播放應用界面已顯示的視頻;
在掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻的過程中,可維持第SurfaceView僅覆蓋屏幕的部分區(qū)域;在非SurfaceView覆蓋的屏幕區(qū)域,移動終端可根據(jù)用戶操作執(zhí)行如打開聊天應用,打字,收發(fā)郵件,甚至玩游戲等其他操作。
本發(fā)明實施例提供的視頻播放方法,可以懸浮顯示于屏幕頂層的SurfaceView顯示視頻,達成在非視頻播放應用界面播放視頻的目的,使得用戶可在移動終端上邊觀看視頻,邊進行其他操作。
下面對本發(fā)明實施例提供的視頻播放裝置進行介紹,下文描述的視頻播放裝置可與上文描述的視頻播放方法相互對應參照。
圖5為本發(fā)明實施例提供的視頻播放裝置的結(jié)構框圖,該裝置可應用于移動終端,參照圖5,該裝置可以包括:
第一View移除模塊100,用于若在視頻播放界面檢測到用戶操作與設定操作相應,控制視頻播放引擎停止播放視頻,并從視頻播放應用界面移除顯示視頻的SurfaceView;
View懸浮顯示模塊200,用于通過WindowManager將所移除的SurfaceView掛載在移動終端的屏幕頂層懸浮顯示;
播放模塊300,用于控制視頻播放引擎播放視頻,并利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻。
可選的,圖6示出了本發(fā)明實施例提供的View懸浮顯示模塊300的一種可選結(jié)構,參照圖6,View懸浮顯示模塊200可以包括:
添加單元210,用于利用所述WindowManager的服務接口將所移除的SurfaceView掛載到所述移動終端的屏幕;
頂層懸浮設置單元220,用于設置掛載到所述屏幕的SurfaceView,在所述屏幕的頂層懸浮顯示。
可選的,播放模塊300利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻時,可利用掛載在屏幕頂層懸浮顯示的SurfaceView刷新對應的Surface中緩存的視頻幀,實現(xiàn)視頻播放;
可選的,移動終端在檢測到用戶操作與設定操作相應時還可記錄所移除的SurfaceView所刷新的視頻幀位置;在此基礎上,播放模塊300具體可用于,從所述視頻幀位置開始,利用掛載在屏幕頂層懸浮顯示的SurfaceView刷新對應的Surface中緩存的后續(xù)視頻幀。
可選的,掛載在屏幕頂層懸浮顯示的SurfaceView可維持顯示于屏幕的第一區(qū)域,第一區(qū)域的大小可與掛載在屏幕頂層懸浮顯示的SurfaceView的大小一致,并隨SurfaceView的大小的調(diào)整而調(diào)整;本發(fā)明實施例還提供有用戶在非第一區(qū)域執(zhí)行其他操作,和在第一區(qū)域執(zhí)行視頻播放控制操作的機制;
對應的,圖7示出了本發(fā)明實施例提供的視頻播放裝置的另一結(jié)構框圖,結(jié)合5和圖7所示,該裝置還可以包括:
第一操作響應模塊400,用于若檢測到用戶在屏幕的非第一區(qū)域的操作,執(zhí)行與所述操作對應的響應結(jié)果;
第二操作響應模塊500,用于若檢測到用戶在所述第一區(qū)域的操作,根據(jù)所述操作對掛載在屏幕頂層懸浮顯示的SurfaceView所顯示的視頻進行相應控制。
可選的,在移動終端需解碼其他視頻時(其他視頻為非掛載在屏幕頂層懸浮顯示的SurfaceView顯示的視頻),為分擔視頻解碼壓力,圖8示出了本發(fā)明實施例提供的視頻播放裝置的再一結(jié)構框圖,結(jié)合5和圖8所示,該裝置還可以包括:
視頻解碼控制模塊600,用于若在利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示所述視頻的過程中,檢測到移動終端設備需解碼非所述視頻的其他視頻,則以與解碼所述視頻不同的視頻解碼方式,解碼所述其他視頻。
可選的,本發(fā)明實施例還提供有由掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻,返回至以視頻播放應用界面顯示視頻的機制;對應的,圖9示出了本發(fā)明實施例提供的視頻播放裝置的又一結(jié)構框圖,結(jié)合5和圖9所示,該裝置還可以包括:
第二View移除模塊700,用于若檢測到用戶操作與設定的返回以所述視頻播放應用界面顯示視頻的操作相應時,控制視頻播放引擎停止播放視頻,并通過所述WindowManager將掛載在屏幕頂層懸浮顯示的SurfaceView從所述移動終端的屏幕中移除;
界面展示模塊800,用于展示視頻播放界面;
設置并播放模塊900,用于將從屏幕中移除的SurfaceView掛載在視頻播放應用界面,利用掛載在視頻播放應用界面的SurfaceView顯示所述視頻。
本發(fā)明實施例還提供一種移動終端,該移動終端可以包括上述所述的視頻播放裝置;采用本發(fā)明實施例提供的移動終端,可以懸浮顯示于屏幕頂層的SurfaceView顯示視頻,達成在非視頻播放應用界面播視頻的目的,使得用戶可在移動終端上邊觀看視頻,邊進行其他操作。
圖10示出了本發(fā)明實施例提供的移動終端的硬件結(jié)構框圖,該移動終端可以為智能手機、平板電腦等移動設置;參照圖10,該移動終端可以包括:
處理器1,通信接口2,存儲器3和通信總線4;
其中處理器1、通信接口2、存儲器3通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執(zhí)行程序;
存儲器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括計算機操作指令。
處理器1可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器3可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
其中,程序可具體用于:
若在視頻播放界面檢測到用戶操作與設定操作相應,控制視頻播放引擎停止播放視頻,并從所述視頻播放應用界面移除顯示視頻的SurfaceView;
通過WindowManager將所移除的SurfaceView掛載在所述移動終端的屏幕頂層懸浮顯示;
控制視頻播放引擎播放視頻,并利用掛載在屏幕頂層懸浮顯示的SurfaceView顯示視頻。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可 編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
對所公開的實施例的上述說明,使本領域?qū)I(yè)技術人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。