亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

懸浮多窗口播放系統(tǒng)的制作方法

文檔序號:7803250閱讀:528來源:國知局
懸浮多窗口播放系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種安卓系統(tǒng)中“懸浮多窗口”播放系統(tǒng),功能特點:一多窗口,可同時播放多個視頻;二獨立懸浮,播放窗口懸浮且獨立于系統(tǒng)和應用的UI之上,每個播放窗口可獨立操控,可在觀看視頻時作其他系統(tǒng)任務操作。本發(fā)明的組成模塊為:視頻解碼模塊、播放控制模塊、狀態(tài)恢復模塊、系統(tǒng)監(jiān)控模塊。視頻解碼模塊用來解碼視頻,將視頻輸出至屏幕;播放控制模塊,用于控制視頻的播放;狀態(tài)恢復模塊用來記錄當前播放的視頻的序號、解碼方式、播放進度、播放狀態(tài)、字幕和音軌的選擇、窗口大小等;系統(tǒng)狀態(tài)監(jiān)控模塊用來監(jiān)測影響播放的其他系統(tǒng)應用,如鎖止和解鎖屏幕、接聽和掛斷電話等操作時,播放窗口進行相應的狀態(tài)響應。
【專利說明】懸浮多窗口播放系統(tǒng)
【技術(shù)領(lǐng)域】:
[0001]本發(fā)明涉及一種安卓系統(tǒng)的視頻播放技術(shù),尤其涉及多窗口懸浮方式視頻播放系統(tǒng)。
【背景技術(shù)】:
[0002]目前基于安卓系統(tǒng)的視頻播放器,只有一種全屏的播放模式,一次只能觀看一個視頻,不能在同一終端屏幕上利用一種播放系統(tǒng)實現(xiàn)多窗口同時播放。由于在安卓系統(tǒng)中當多個系統(tǒng)應用同時運行時采用棧的模式(后入先出),最后打開的應用在屏幕的最上層,覆蓋住其他的應用,所以用戶在觀看視頻時如果要進行其他操作,打開相關(guān)應用就會覆蓋正在觀看的視頻,同樣的由于正在進行的視頻播放處于屏幕的最上層也會影響到用戶觀測其他應用操作的信息,視頻播放和其它應用之間相互造成影響,視頻播放窗口不能獨立于系統(tǒng)和應用的UI之上,不能實現(xiàn)視頻播放窗口不受其它同時打開的應用的影響進行獨立的操控?,F(xiàn)有技術(shù)當進行視頻播放時,當來了電話需要接聽電話或者屏幕出現(xiàn)鎖止和開鎖等,這一系列對視頻播放產(chǎn)生密切關(guān)聯(lián)影響的系統(tǒng)應用出現(xiàn)時,一般是暫停播放,當電話掛斷或者屏幕開鎖后需要按播放鍵恢復播放,不能根據(jù)用戶的設(shè)置自動選擇暫停或繼續(xù)播放并對播放窗口進行自動調(diào)整恢復播放。

【發(fā)明內(nèi)容】
:
[0003]現(xiàn)有技術(shù)中存在的問題一是不能在同一終端利用一種播放系統(tǒng)實現(xiàn)多窗口同時播放,二是由于安卓系統(tǒng)中多個系統(tǒng)應用同時運行時采用棧的模式最后打開的應用在屏幕最上層覆蓋住其他應用,影響用戶多任務操作,現(xiàn)有技術(shù)播放器打開的視頻窗口不能完全獨立于其它應用實現(xiàn)獨立操控。
[0004]本發(fā)明提供一種懸浮多窗口播放系統(tǒng),實現(xiàn)一種播放系統(tǒng)多個視頻同時播放通過懸浮窗口方式播放視頻,窗口位置在終端和系統(tǒng)界面,多個窗口之間相互獨立,每個窗口都有一套控制系統(tǒng),部分窗口播放狀態(tài)和進度等改變,不影響和應用動位置,縮放窗體和播放畫面,不是只有一種全屏播放模式。
[0005]本發(fā)明由視頻解碼模塊、播放控制模塊、狀態(tài)恢復模塊、系統(tǒng)監(jiān)控模塊組成。
[0006]視頻解碼模塊,以ffmpeg為解碼基礎(chǔ),另外封裝了一些自定義的接口和數(shù)據(jù)輸出的方法,一是方便上層Π調(diào)用,二是將解碼后的視頻流、音頻流、字幕流等數(shù)據(jù)輸出到設(shè)備的屏幕上。視頻解碼模塊直接與播放控制模塊交互作用,將數(shù)據(jù)輸出到播放窗口界面,其中解碼主要有兩種:一是系統(tǒng)解碼組件,二是自己編寫的解碼模塊。
[0007]播放控制模塊,播放組件在播放窗口界面和視頻解碼模塊之間串聯(lián),直接對播放窗口進行狀態(tài)控制,包括播放、暫停、調(diào)節(jié)進度、字幕音軌、播放下一集等基本播放控制和窗體最小化、最小化恢復、恢復全屏播放、窗體大小縮放。全屏播放按Home鍵觸發(fā)懸浮播放,或在播放列表中選中若干個視頻直接打開懸浮窗口播放,懸浮播放過程中,通過播放控制模塊中的最大化按鈕恢復成全屏播放,各個懸浮播放窗口相互獨立,每個窗口都由四個模塊共同作用實現(xiàn)單獨操控。
[0008]懸浮窗口播放時可多點觸摸縮放播放畫面大小,用安卓中的View觸摸接口OnTouchListener來截獲窗口的移動或縮放操作,根據(jù)雙指移動時距離的大小差來計算窗口放大或縮小的倍數(shù)。
[0009]狀態(tài)恢復模塊,包括窗體初使化單元、窗體恢復單元和狀態(tài)記錄單元,直接交互作用于播放窗口,在播放過程中記錄相關(guān)信息,在播放時能恢復至之前的狀態(tài),包括全屏與懸浮窗口播放、鎖屏與解鎖、來電與掛斷電話等播放狀態(tài)切換時發(fā)揮作用。
[0010]系統(tǒng)狀態(tài)監(jiān)控模塊,播放過程中監(jiān)測到屏幕的鎖止和解鎖、來電接聽掛斷電話等視頻播放以外其他系統(tǒng)行為時,浮動窗口根據(jù)設(shè)置作出相應狀態(tài)調(diào)整。
[0011]現(xiàn)有技術(shù)播放窗口在播放過程中遇到影響播放的其他系統(tǒng)行為只有暫?;蜃钚』臓顟B(tài)改變,其他系統(tǒng)行為結(jié)束或完成時也不能自動恢復播放狀態(tài),本發(fā)明視頻播放窗口針對播放過程中出現(xiàn)的其他系統(tǒng)行為根據(jù)事先的設(shè)置作出相應狀態(tài)響應,例如發(fā)生鎖止和打開屏幕或來電接聽和掛斷電話,針對這兩種情況,當鎖屏后視頻播放窗口可以選擇繼續(xù)或者暫停播放,解鎖打開屏幕后恢復播放,當來電需要接聽,視頻播放窗口自動最小化,掛斷電話恢復播放。
[0012]技術(shù)方案是在系統(tǒng)監(jiān)控模塊注冊屏幕鎖止和打開,接聽和掛斷電話這些影響播放的系統(tǒng)行為的BroadcastReceiver,播放過程中對系統(tǒng)行為狀態(tài)變化進行監(jiān)測分析,避免視頻播放與系統(tǒng)行為沖突。出現(xiàn)注冊系統(tǒng)行為時,根據(jù)用戶設(shè)置的規(guī)則,調(diào)用播放控制模塊對播放狀態(tài)和窗體狀態(tài)進行調(diào)整,繼續(xù)或暫停播放或最小化視頻窗口,同時調(diào)用狀態(tài)恢復模塊保存的之前播放狀態(tài)和窗體信息,當注冊的系統(tǒng)行為結(jié)束或者完成后,可以恢復之前的播放和窗口狀態(tài)。
[0013]對比傳統(tǒng)的播放模式,懸浮多窗口播放模式操作更便捷,更加人性化。每個顯示的視頻窗口可獨立進行控制操作,可隨意拖拽視頻播放窗口位置,改變視頻窗口的大小,在發(fā)生鎖屏和來電等影響播放的系統(tǒng)行為時可以選擇最小化,繼續(xù)或者暫停播放并具有恢復播放功能。懸浮多窗口播放,視頻播放的內(nèi)容更加豐富,多窗口多任務性,視頻播放時不影響用戶進行其他系統(tǒng)操作。
【專利附圖】

【附圖說明】:
[0014]圖1本發(fā)明的懸浮多窗口播放系統(tǒng)的流程圖。
[0015]圖2本發(fā)明的懸浮多窗口播放系統(tǒng)的效果圖。
[0016]圖3本發(fā)明狀態(tài)恢復模塊組成圖。
【具體實施方式】:
[0017]下面結(jié)合附圖對本浮動多窗口系統(tǒng)每個模塊的實施作詳細的描述:
[0018]如圖1所示,在全屏播放按Home鍵觸發(fā)懸浮播放,或在播放列表中選中若干個視頻直接打開懸浮窗口播放。懸浮播放過程中,也可通過播放控制中的最大化按鈕恢復成全屏播放。各個懸浮播放窗口是相互獨立的,每個都有各個模塊獨立控制。
[0019]各個模塊的實施方式如下:
[0020]I視頻解碼模塊,以ffmpeg為解碼基礎(chǔ),另外封裝了一些自定義接口和數(shù)據(jù)輸出的方法,一是方便上層Π調(diào)用,二是將解碼后的視頻流、音頻流、字幕流等數(shù)據(jù)輸出到設(shè)備的屏幕上。
[0021]2播放控制模塊,即播放組件,在播放界面和視頻解碼模塊之間串聯(lián),其中解碼主要有兩種:一是系統(tǒng)的系統(tǒng)解碼組件,二是自己寫的解碼模塊。其實施方式如下:
[0022]I)加載解碼包類庫,安卓中JNI來調(diào)用高效的C的類庫,類庫文件一般存放于工程目錄下的Iibs文件夾中,不同CPU (arm、x86、mips等)的類庫分別存放于不同的子文件夾(armeab1、x86、mips 等),執(zhí)行 System.1oadLibrary ( “moboplayer”);的方式調(diào)用和加載解碼類庫。
[0023]2)加載視頻,將視頻的信息傳入,有之前保存的解碼方式就用之前的方式,若無保存的解碼方式,則用效率更高、更省電的系統(tǒng)解碼組件,如果解碼成功就開始解碼;如果解碼失敗,再調(diào)用自己寫的解碼模塊,同時初使化字幕和音軌等信息;對系統(tǒng)監(jiān)控模塊中需要監(jiān)聽的系統(tǒng)行為的BiOadcastReceiver進行注冊,以便這些系統(tǒng)行為發(fā)生時能及時的調(diào)整播放狀態(tài)、調(diào)用系統(tǒng)恢復模塊來保存窗體信息和媒體信息。
[0024]3)播放視頻,播放過程中主要是對界面播放進度、時間、外置字幕流等進行更新。播放進度根據(jù)視頻的長度和當前播放的進度來算;外置字幕流,支持常規(guī)的srt、ass、ssa、smi等格式,將字幕文件解析成二進制數(shù)據(jù),根據(jù)當前視頻的播放時間,結(jié)合字幕中的時間軸,來確定當前需要顯示的字幕信息。實施效果如圖2所示。
[0025]懸浮窗口多點觸摸縮放播放畫面的大小:用安卓中的View的觸摸接口OnTouchListener,來截獲窗口的移動或縮放操作,根據(jù)雙指移動時距離的大小差,來計算窗口放大或縮小的倍數(shù)。
[0026]在播放過程中,還需要保持屏幕常亮,
[0027]
PowerManager.WakeLock mWakeLock = null;
PowerManager pm = (PowerManager) ((Activity) mContext).getSystemService(Context.POWER—SERVICE);
mWakeLock =pm.newWakeLock(PowerManager.SCREEN—BRIGHT—WAKE—LOCK,
〃MoboPlayer〃);
mWakeLock.acquire ();
[0028]播放完成后,將WakeLock釋放,以便屏幕在長時間無操作后自動關(guān)閉,節(jié)省電量。
[0029]

if (mWakeLock != null) {

mWakeLock.release O ;
[0030]mWakeLock 二 null;



}
[0031]3狀態(tài)恢復模塊,作用于全屏播放和懸浮窗口播放、鎖屏和解鎖、來電和掛斷電話等播放狀態(tài)切換時。在播放過程中,記錄相關(guān)信息,以便在播放時能恢復至之前的狀態(tài)。
[0032]狀態(tài)恢復包括兩種: [0033]I)從全屏窗口切換至小窗口,恢復播放狀態(tài)和之前窗體的狀態(tài);
[0034]2)選中多個視頻,直接打開多個懸浮窗口播放,指定初使的狀態(tài)。
[0035]如圖3所示,狀態(tài)恢復模塊包括三個單元組成:窗體初使化單元、窗體恢復單元和狀態(tài)記錄單元。
[0036]在全屏播放按Home鍵觸發(fā)懸浮播放,或在播放列表中選中若干個視頻直接打開懸浮窗口播放,開始懸浮窗口的生成流程:
[0037]I)窗口信息的初使化:
[0038]初始化窗體的屬性,加載懸浮窗口的布局,將各個組件初使化至內(nèi)存,為各個按鈕添加相應的接口,各個接口被調(diào)用后對窗體或播放作出相應的操作;將“系統(tǒng)監(jiān)控模塊”中需要監(jiān)控的鎖止開鎖屏幕和來電接聽掛斷電話等系統(tǒng)狀態(tài)的廣播在系統(tǒng)中進行注冊;同時啟動播放控制模塊:加載解碼包類庫(整個應用的生命周期內(nèi),只加載一次,若之前有過加載則此次跳過)、加載視頻和播放視頻。
[0039]默認窗體大小根據(jù)視頻的分辨率、播放比例、屏幕分辨率、屏幕尺寸等條件計算而來:以寬度為基準,縮小相應的倍數(shù)(此倍數(shù)由設(shè)備的尺寸而定,屏幕越大,倍數(shù)也越大),高度值由縮小后的寬度值除以播放比例算出。
[0040]默認窗體的位置,由當前需要展示的窗口的數(shù)量、大小和序號決定,首個窗體位于屏幕左上方,以后的窗口依次在之前窗口的正文展示,其I坐標為之前窗口的高度之和加上窗體之間的間距之和;當其I坐標+其窗體高度大于屏幕大小時,則將其X坐標置0,y坐標變?yōu)橹按翱趯挾?間距。
[0041]2)初使化完畢后,開始恢復之前的狀態(tài)。
[0042]窗體大小的恢復,從狀態(tài)記錄單元中獲取之前保存的窗體的大小,根據(jù)獲取尺寸重新布局窗體界面的各個組件的大小和間距等。
[0043]窗體位置的恢復,從狀態(tài)記錄單元中獲取之前窗體的位置信息,設(shè)置屏幕WindowManager的布局對象,將窗體位置布置到相應的坐標之上。
[0044]窗體播放狀態(tài)的恢復,從狀態(tài)記錄單元中獲取相應的媒體信息,恢復視頻播放或暫停、恢復相應的字幕、音軌、恢復播放進度等播放信息。
[0045]3)狀態(tài)記錄由兩個個部分組成,窗口信息的記錄:窗口大小、顯示位置、顯示序列;媒體信息的記錄:視頻的基本信息(視頻播放地址、字幕、播放比例、播放狀態(tài)、播放進
/又寸/ ο
[0046]4系統(tǒng)監(jiān)控模塊,注冊影響正在進行視頻播放窗口狀態(tài)的其他系統(tǒng)行為的BroadcastReceiver,對每種系統(tǒng)行為出現(xiàn)時播放視頻窗口的應對狀態(tài)分別進行設(shè)置。在播放過程中對注冊的系統(tǒng)行為的狀態(tài)的變化進行分析,發(fā)生相應的系統(tǒng)狀態(tài)時,調(diào)用播放控制模塊對播放狀態(tài)和窗體狀態(tài)進行調(diào)整,同時調(diào)用狀態(tài)恢復模塊保存的之前的播放狀態(tài)和窗體信息,當注冊的系統(tǒng)行為結(jié)束或者完成后系統(tǒng)狀態(tài)可以恢復之前的播放狀態(tài)和窗口狀態(tài)。例如,在視頻播放時,出現(xiàn)鎖止屏幕的情況,來電需要接聽電話的情況:
[0047]I)出現(xiàn)鎖屏后,根據(jù)用戶設(shè)置的規(guī)則,繼續(xù)播放視頻或暫停播放視頻,待屏幕解鎖后恢復播放。設(shè)置對屏幕鎖定和打開的監(jiān)聽代碼,鎖屏后不繼續(xù)播放屏幕打開后開始播放,或者鎖屏后繼續(xù)播放屏幕打開不需要進行任何操作持續(xù)播放:
[0048]
【權(quán)利要求】
1.一種懸浮多窗口播放系統(tǒng),其特征在于:包括: 視頻解碼模塊,用來解碼視頻并將解碼后的數(shù)據(jù)輸出至終端的屏幕; 播放控制模塊,用來控制播放窗口的播放狀態(tài); 狀態(tài)恢復模塊,用來記錄視頻播放狀態(tài)和信息并實現(xiàn)播放窗口狀態(tài)切換; 系統(tǒng)狀態(tài)監(jiān)控模塊,在播放過程中監(jiān)測到屏幕的鎖止解鎖、來電掛斷電話等視頻播放以外的系統(tǒng)行為時,對發(fā)生的系統(tǒng)行為根據(jù)事先的注冊設(shè)置視頻窗口作出狀態(tài)相應調(diào)整; 播放控制模塊,即播放組件是在播放窗口界面和視頻解碼模塊之間串聯(lián),視頻解碼模塊與播放控制模塊交互作用,播放控制模塊和系統(tǒng)狀態(tài)監(jiān)控模塊分別作用于播放窗口界面,狀態(tài)恢復模塊與播放窗口界面交互作用;播放窗口界面分為全屏播放和懸浮窗口兩種模式,四模塊協(xié)同作用實現(xiàn)懸浮多窗口視頻播放,并且各個播放窗口可獨立操控。
2.根據(jù)權(quán)利要求1所述懸浮多窗口播放系統(tǒng),其特征在于:視頻解碼模塊,以ffmpeg為解碼基礎(chǔ)并封裝了自定義的接口和數(shù)據(jù)輸出的方法。
3.根據(jù)權(quán)利要求2所述懸浮多窗口播放系統(tǒng),其特征在于:播放控制模塊其解碼主要有兩種:一是系統(tǒng)解碼組件,二是編寫的解碼模塊。
4.根據(jù)權(quán)利要求3所述懸浮多窗口播放系統(tǒng),其特征在于:播放控制模塊控制播放窗口的播放狀態(tài)包括播放、暫停、調(diào)節(jié)進度、字幕音軌、播放下一集等基本播放控制和窗體最小化、最小化恢復、恢復全屏播放、窗體大小縮放。
5.根據(jù)權(quán)利要求4所述懸浮多窗口播放系統(tǒng),其特征在于:在全屏播放時觸發(fā)懸浮播放或者在播放列表中選中若干個視頻直接打開懸浮窗口播放,懸浮播放時通過多點觸摸縮放畫面的大小,用安卓中View觸摸接口 OnTouchListener,來截獲窗口的移動或縮放操作,根據(jù)雙指移動時距離的大小差,來計算窗口放大或縮小的倍數(shù)。
6.根據(jù)權(quán)利要求1所述懸浮多窗口播放系統(tǒng),其特征在于:狀態(tài)恢復模塊狀態(tài)恢復模塊由窗體初使化單元、窗體恢復單元和狀態(tài)記錄單元三部分組成。
7.根據(jù)權(quán)利要求6所述懸浮多窗口播放系統(tǒng),其特征在于:狀態(tài)恢復模塊作用于全屏播放和懸浮窗口播放、鎖屏與解鎖、來電與掛斷電話時的播放狀態(tài)切換,狀態(tài)恢復包括從全屏窗口切換至小窗口,恢復播放狀態(tài)和之前窗體的狀態(tài),選中多個視頻直接打開多個懸浮窗口播放指定初使的狀態(tài)。
8.根據(jù)權(quán)利要求7所述懸浮多窗口播放系統(tǒng),其特征在于:系統(tǒng)監(jiān)控模塊注冊監(jiān)聽鎖止打開屏幕,接聽掛斷電話這些影響視頻播放窗口狀態(tài)的相關(guān)系統(tǒng)行為,當發(fā)生注冊的系統(tǒng)行為時,系統(tǒng)根據(jù)用戶設(shè)置的規(guī)則,調(diào)用播放控制模塊對播放狀態(tài)和窗體狀態(tài)進行調(diào)整,繼續(xù)或暫停播放或最小化窗口視頻,同時調(diào)用狀態(tài)恢復模塊保存的之前的播放狀態(tài)和窗體信息,當注冊的系統(tǒng)行為結(jié)束或者完成后系統(tǒng)狀態(tài)可以恢復之前的播放狀態(tài)和窗口狀態(tài)。
【文檔編號】H04N21/81GK103957447SQ201410192834
【公開日】2014年7月30日 申請日期:2014年5月8日 優(yōu)先權(quán)日:2014年5月8日
【發(fā)明者】趙玉芳 申請人:濟南四葉草信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1