本發(fā)明涉及多媒體播放領域,尤其涉及一種在終端多應用共同播放多媒體的方法及其裝置。
背景技術:
隨著計算機技術和網絡技術的飛速發(fā)展,互聯(lián)網和即時通信技術在人們的日常生活、工作、學習中發(fā)揮的作用越來越大,特別是移動互聯(lián)網時代的到來,移動終端個體應用呈現(xiàn)百花齊放的態(tài)勢,各種移動終端,特別是手機,已經遠遠不只作為通信工具,更成為娛樂、辦公的必備產品。
在目前手機操作系統(tǒng)中(例如android),不同應用可能都會盡量應用多種系統(tǒng)資源來更佳的提供服務,最常見的就是大多數(shù)應用都會調用音頻設備來播放內容。然而不同的應用之間由于權限不同,并不具備相互管理的能力,只能是探測當前音頻設備的使用情況,然后在設備未被使用時才播放自身內容,或者是直接調用音頻設備播放自身內容,在這種情況下,有可能與其他應用正在播放的音頻內容沖突,造成相互音頻播放干擾。
現(xiàn)有技術1披露了一種網頁中視頻與音頻共存時的交互方法和系統(tǒng),能夠在一定程度上避免視頻音頻播放的干擾。然而該方法是通過在接收到的視頻打開指令或視頻關閉指令時對網頁中的音頻和視頻進行播放選擇控制,也即是在同一個應用程序中放置不同音頻沖突,并沒有解決操作系統(tǒng)中不同應用間音頻的“共存”的需求。
現(xiàn)有技術2披露了一種視頻文件交互裝置,允許將獲取的視頻文件中的音頻替換為其他音頻文件??梢钥闯鲈摲桨敢矁H僅是在一個應用內部改變音頻輸出的內容,無法解決不同應用間音頻播放的“共存”問題。
現(xiàn)有技術3披露了一種音樂類app搶占播放的方法,在安卓系統(tǒng)代碼中通過設置聲音優(yōu)先級的參數(shù),可以解決聲音沖突的播放優(yōu)先級問題。例如當多個聲音沖突時,系統(tǒng)會優(yōu)先播放優(yōu)先級高的聲音。另外還有解決多音頻同時播放的技術方案——soundpool,該技術支持同時播放多種聲音,這些聲音在系統(tǒng)開始時會加載到列表中,按照這些聲音的id,可以調用這些聲音。但是soundpool只適合播放需要反復播放且時間較短的聲音,其最大申請內存空間僅僅只有1m,也即soundpool只能使用一些很短的聲音片段,而不能播放歌曲或者游戲背景音樂。另外soundpool提供的pause和stop方法有些時候可能會使其他程序莫名其妙的終止;在停止播放方面,soundpool不會立即中止播放聲音,而是把緩沖區(qū)里的數(shù)據(jù)播放完才會停下來,導致可能會存在多播放一秒鐘的尷尬;在音頻格式方面,soundpool對音頻格式要求嚴格,對建議使用的ogg格式支持較好,然而使用非建議的音頻格式時,在聲音播放間隔較短的情況下會出現(xiàn)異常關閉的情況。由此可見,現(xiàn)有技術3同樣無法解決背景音樂應用和網頁視頻之間同時播放的矛盾。
現(xiàn)有技術1:cn201410439144.7(申請日2014-08-29),網頁中音頻與視頻共存時的音頻視頻交互方法及系統(tǒng)。
現(xiàn)有技術2:cn201310024374.2(申請日2013-01-23),一種視頻交互方法、裝置和系統(tǒng)。
現(xiàn)有技術3:google官方文檔sharetheaudiofocus,(https://developer.android.com/guide/topics/media-apps/volume-and-earphones.html)
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題在于,如何提供一種在移動終端中多個應用的播放共存時的交互方法和裝置。
本發(fā)明一方面提出了一種終端多應用共同播放多媒體的方法,包括:
檢測播放類應用狀態(tài);
當有播放類應用開始播放后,基于播放類應用狀態(tài)的檢測結果,根據(jù)預定策略或用戶選擇,控制是否允許開始播放的所述播放類應用的音視頻輸出。
優(yōu)選地,在所述控制是否允許開始播放的所述播放類應用的音視頻輸出步驟前,在系統(tǒng)api級別獲取所有播放類應用的通道信息。
優(yōu)選地,僅在系統(tǒng)播放器資源足夠的情況下,才允許播放類應用開始播放。
優(yōu)選地,所述播放類應用包括音頻播放應用、視頻播放應用、音視頻播放應用中的至少一種,所述通道信息包括音頻通道信息、顯示通道信息中的至少一種,所述控制是否允許開始播放的所述播放類應用的音視頻輸出包括分別控制每個播放類應用的音軌輸出使能、視頻顯示窗口大小、視頻顯示窗口可見性中的至少一種。
本發(fā)明的另一方面提出了一種終端多應用共同播放多媒體的裝置,包括:
狀態(tài)檢測部,用于檢測播放類應用狀態(tài);
播放控制部,用于當有播放類應用開始播放后,基于播放類應用狀態(tài)的檢測結果,根據(jù)預定策略或用戶選擇,控制是否允許開始播放的所述播放類應用的音視頻輸出。
優(yōu)選地,該裝置還包括狀態(tài)獲取部,用于在系統(tǒng)api級別獲取所有播放類應用的通道信息。
優(yōu)選地,該裝置還包括系統(tǒng)資源檢測部,用于檢測系統(tǒng)播放器資源是否足夠。
優(yōu)選地,所述播放類應用包括音頻播放應用、視頻播放應用、音視頻播放應用中的至少一種,所述通道信息包括音頻通道信息、顯示通道信息中的至少一種,所述控制是否允許開始播放的所述播放類應用的音視頻輸出包括分別控制每個播放類應用的音軌輸出使能、視頻顯示窗口大小、視頻顯示窗口可見性中的至少一種。
本發(fā)明利用系統(tǒng)內置的播放器管理系統(tǒng),結合播放器底層接口獲取的信息,獲知當前的播放器音視頻輸出狀態(tài),并根據(jù)預設的或者動態(tài)的策略,調整每個正在播放的app的音視頻輸出通道。由于app都需要基于系統(tǒng)播放及顯示相關api進行播放顯示,采用這種方式,避免了app之間溝通協(xié)調的成本及使用混亂,具有很強的穩(wěn)定性及很大的擴展性,同時也具有很高的效率。
此外,本發(fā)明根據(jù)需求動態(tài)控制音頻的輸出而不是根據(jù)音頻預設的優(yōu)先級來設置,也就是說即使是設了某個優(yōu)先級的音頻通道,它是可以根據(jù)需要輸出或者關閉輸出的,因而具有更高的靈活性,且易于實施,可以直接應用于產品,具有良好的市場前景。
附圖說明
圖1為本發(fā)明的多應用共同播放多媒體的方法的流程圖。
圖2為本發(fā)明的多應用共同播放多媒體的裝置結構圖。
圖3為本發(fā)明的一種優(yōu)選方法流程圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖對本發(fā)明作進一步的詳細描述。
隨著移動互聯(lián)網的日益發(fā)展,移動終端被越來越廣泛地使用在人們的日常生活中。特別是近些年來,移動終端進入智能化時代,在移動終端中會安裝一個操作系統(tǒng),用以管理移動終端中的各種軟硬件資源,其一個顯著的特點是允許終端安裝第三方軟件,進而可以擴展移動終端的功能。
第三方軟件,也被稱為應用(app),目前許多應用都會向用戶播放多媒體內容,當多個應用同時被用戶打開并且都期望播放自身的多媒體內容時就會出現(xiàn)沖突,具體表現(xiàn)為不同應用的音視頻內容被同時播放,混雜在一起影響用戶收聽和觀看,或者是不期望的應用的音頻或視頻被輸出給用戶,而期望的應用的音頻或視頻卻無法輸出。此時,用戶只能選擇關閉不期望的應用來避免干擾,而有時找到不期望的應用并將其關閉是件非常繁瑣的事情。
為了避免上述問題,在本發(fā)明的一個實施方式中,提出一種終端多應用共同播放多媒體的方法,以解決上述問題的困擾。該方法流程如圖1所示,包括:
s10:檢測播放類應用狀態(tài)。本發(fā)明中的播放類應用包括視頻播放應用和/或音頻播放應用,但也不僅限這些應用,凡是能夠輸出音頻或視頻的應用都適用于本發(fā)明。
對播放類應用狀態(tài)的檢測可以通過系統(tǒng)內置的播放器管理系統(tǒng),結合播放器底層接口獲取的信息,來獲知當前的播放器音視頻輸出狀態(tài)。例如,底層接口獲取的信息可以是根據(jù)之前已經啟動的系統(tǒng)底層播放器的狀態(tài)輸出,記錄其音頻和顯示通道信息;系統(tǒng)內置的播放器管理系統(tǒng)在之前的專利cn106155828a中有描述,通過播放器內部的消息通知獲取并發(fā)送到播放器管理系統(tǒng)從而獲取底層接口信息。
s20:當有播放類應用開始播放后,基于播放類應用狀態(tài)的檢測結果,根據(jù)預定策略或用戶選擇,控制是否允許開始播放的所述播放類應用的音視頻輸出。
例如,對于音頻通道,可以控制其是否mix到外部聲音輸出模塊來實現(xiàn)控制是否允許開始播放的所述音頻播放類應用的音頻輸出;對于顯示通道,可以控制各顯示層的顯示順序z-order(可見性)及各顯示層中的視窗位置來實現(xiàn)控制是否允許開始播放的所述視頻播放類應用的視頻輸出。z-order是圖像處理中一個術語,表示多層顯示通道的先后順序,通過z-order,自動進行不同圖層的顯示隱藏處理,這些操作對app是透明的。
通過上述實施方式,可以在系統(tǒng)級別控制不同應用的輸出使能,避免了應用之間溝通協(xié)調的成本及使用混亂,具有很強的穩(wěn)定性及很大的擴展性,同時也具有很高的效率。此外,允許用戶參與應用輸出的使能,因此允許用戶來決定輸出多個應用中的哪個應用的音頻或視頻。
在一個優(yōu)選實施方式中,在控制開始播放的播放類應用的輸出使能之前,先在系統(tǒng)api級別獲取所有播放類應用的通道信息。
在一個優(yōu)選實施方式中,僅在系統(tǒng)播放器資源足夠的情況下,才允許播放類應用開始播放。
在一個優(yōu)選實施方式中,所述播放類應用包括音頻播放應用或視頻播放應用,所述通道信息包括音頻通道信息或顯示通道信息,所述控制是否允許開始播放的所述播放類應用的音視頻輸出包括分別控制每個播放類應用的音軌輸出使能,或者視頻顯示窗口大小,或者視頻顯示的z-order。
另外,本發(fā)明還提供一種終端多應用共同播放多媒體的裝置的實施方式。該裝置如圖2所示,包括:
狀態(tài)檢測部,用于檢測播放類應用狀態(tài);
播放控制部,用于當有播放類應用開始播放后,基于播放類應用狀態(tài)的檢測結果,根據(jù)預定策略或用戶選擇,控制是否允許開始播放的所述播放類應用的音視頻輸出;
狀態(tài)獲取部,用于在系統(tǒng)api級別獲取所有播放類應用的通道信息;
系統(tǒng)資源檢測部,用于檢測系統(tǒng)播放器資源是否足夠。
下面討論幾種不同的預定策略。
在一個可能實施方式中,重點考慮音樂視頻屏保存在的場景。在該場景中,當用戶沒有任何操作的情況下,等待若干時間進入視頻屏保,同時可以啟動后臺音樂播放,這個時候啟動了兩個播放類應用,并且可以被系統(tǒng)播放器管理系統(tǒng)偵測到。對于這種情形,播放器管理系統(tǒng)可以根據(jù)應用名稱判斷出是在屏保界面,如果屏保應用有音頻輸出不加以控制,會和音樂輸出一起混合,影響用戶聽音樂,這個時候根據(jù)預設的策略,為了優(yōu)先保證后臺音樂獨立輸出清晰的聲音,可以調用音軌相關的底層api接口關閉屏保應用的音軌輸出,這樣自動操作后,保證了用戶正常觀看屏保視頻畫面和聽后臺音樂。
在一個可能實施方式中,重點考慮這樣的場景,即已經開啟一個音樂app進行后臺播放后,又打開新的音樂app進行前臺播放的情況。在該場景下,如果app不使用audiofocus,兩個音軌會一起混合輸出,干預用戶正常聽音樂,這個情形如圖3所示可以有3個選擇:1.根據(jù)播放的先后順序,關閉先播放的音軌輸出,只輸出后來播放的音軌。2.根據(jù)用戶設置,比如說某個應用播放優(yōu)先,則保留優(yōu)先級高的應用的音軌輸出,關閉其余應用的音軌輸出;或是判斷后開啟的app是否為純音頻播放,若是則保持原先音頻app的播放,從而防止兩個音軌混合。3.調用系統(tǒng)api判斷app的可見性,關閉后臺的音頻播放。需要指出的是,由于本發(fā)明是在系統(tǒng)層級對音視頻輸出進行控制,因此避免了app使用的不規(guī)范帶來的問題,并且可以動態(tài),全局設置,對于使用場景有更好的擴展性。
在一個可能實施方式中,重點考慮某個應用靠邊進行小窗視頻播放時的場景。在該場景下,當某個應用靠邊進行小窗視頻播放時,如果播放新的視頻應用,并且是大窗的,那么大小窗會有重疊,這種情形下,可以根據(jù)預設或者用戶設定的大小窗誰在前的策略,由播放器管理系統(tǒng)調整兩個應該的顯示窗口的排列順序z-order。通過這樣的設置,避免了app使用不規(guī)范帶來的視頻遮擋等糟糕體驗,并且可以全局,動態(tài)管理。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。