開放式操作系統的媒體播放器的控制方法及媒體播放器的制造方法
【技術領域】
[0001]本申請涉及媒體播放技術領域,尤其涉及一種應用于開放式操作系統的媒體播放器的控制方法及媒體播放器。
【背景技術】
[0002]為了滿足用戶的視頻播放需求,在用戶終端上安裝的操作系統往往會提供自帶的系統播放器,用于播放諸如音頻、視頻等媒體文件。
[0003]在開放式操作系統中,例如安卓系統,系統播放器直接調用操作系統中播放器內核來執行用戶對系統播放器的一些操作,例如點擊開始播放的圖標或按鈕、點擊暫停播放的圖標或按鈕等。由于安卓系統中源代碼的開放性以及用戶終端中硬件的多樣性,用戶在使用系統播放器播放媒體文件時,常常出現失敗或者卡住等現象,播放錯誤率較高,例如,在播放器上無法播放視頻、在播放視頻期間突然出錯或者在用戶對系統播放器進行操作后卡住,無任何響應,從而降低了用戶終端的資源利用率,影響了用戶的體驗。
【發明內容】
[0004]本發明提供了一種開放式操作系統的媒體播放器的控制方法及媒體播放器,能夠提高中央處理器(CPU)利用率,有效減少播放錯誤的出現。
[0005]本發明的技術方案是這樣實現的:
[0006]本發明提供了一種開放式操作系統的媒體播放器的控制方法,當媒體播放器準備播放一媒體文件時,創建用戶接口事件處理線程和用戶接口事件隊列,并啟動用戶接口事件處理線程;及每當接收到一用戶接口操作時,將該用戶接口操作對應的用戶接口事件寫入用戶接口事件隊列中;其中,用戶接口事件處理線程從用戶接口事件隊列中依次讀取用戶接口事件,執行用戶接口事件對應的操作。
[0007]本發明還提供了一種媒體播放器,包括:創建模塊,用于當媒體播放器準備播放一媒體文件時,創建用戶接口事件處理線程和用戶接口事件隊列;啟動模塊,用于啟動用戶接口事件處理線程;接收模塊,用于接收用戶接口操作,每當接收到一用戶接口操作就將該用戶接口操作對應的用戶接口事件觸發到寫入模塊;及寫入模塊,用于每當從接收模塊接收到一用戶接口事件就將該用戶接口事件寫入用戶接口事件隊列中;其中,用戶接口事件處理線程從用戶接口事件隊列中依次讀取用戶接口事件,并執行用戶接口事件對應的操作。
[0008]本發明提供的開放式操作系統的媒體播放器的控制方法,通過創建和啟動用戶接口事件處理線程,提高了 CPU利用率,有效減少播放失敗、出錯、無響應等錯誤的出現,同時提高了軟件開發人員的開發效率,降低了開發成本。
【附圖說明】
[0009]圖1為依據本發明一實施例的開放式操作系統的媒體播放器的控制方法的流程示意圖;
[0010]圖2為依據本發明一實施例的接收用戶操作的界面示意圖;
[0011]圖3為依據本發明另一實施例的開放式操作系統的媒體播放器的控制方法的流程不意圖;
[0012]圖4為依據本發明一實施例的媒體播放器的結構示意圖;
[0013]圖5為依據本發明另一實施例的媒體播放器的結構示意圖;
[0014]圖6為依據本發明又一實施例的媒體播放器的結構示意圖。
【具體實施方式】
[0015]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0016]本發明應用于開放式操作系統中自帶的媒體播放器,當用戶在電子設備上安裝了一開放式操作系統,例如安卓系統,那么在安卓系統中自帶的媒體播放器也被安裝在該電子設備上,供用戶使用來播放音頻、視頻等媒體文件。
[0017]該媒體播放器可以位于基于開放式操作系統的單獨的媒體播放設備,也可以位于任一具有媒體播放功能的基于開放式操作系統的電子設備,包括但不限于臺式計算機、智能手機、掌上電腦、平板電腦、智能手機等。
[0018]圖1為依據本發明一實施例的開放式操作系統的媒體播放器的控制方法的流程示意圖。參見圖1,該方法包括:
[0019]步驟101,當媒體播放器準備播放一媒體文件時,創建用戶接口事件處理線程和用戶接口事件隊列,并啟動用戶接口事件處理線程。
[0020]在操作系統中,線程(Thread)是指程序中一個單一的順序控制流程,在單個程序中可以同時運行多個線程以并行完成不同的工作,稱為多線程。多個線程共享數據空間,每個線程有自己的一組CPU寄存器和堆棧,線程的運行需要使用計算機的內存資源和CPU。
[0021]在本實施例中,對于媒體播放器,專門創建一個用戶接口事件處理線程,用于處理用戶接口事件。例如,在安卓系統中,通過創建一個Thread類的實例,來創建一個新的線程。同時,相應地,為該用戶接口事件處理線程創建用戶接口事件隊列。該用戶接口事件隊列是用于存放用戶接口事件的數據結構,可以按照“先進先出”的原則存放用戶接口事件,存放的方式可以是以鏈表的方式將用戶接口事件串聯起來。
[0022]步驟102,每當接收到一用戶接口操作時,將該用戶接口操作對應的用戶接口事件寫入用戶接口事件隊列中,其中,用戶接口事件處理線程從用戶接口事件隊列中依次讀取用戶接口事件,執行該用戶接口事件對應的操作。
[0023]與用戶接口操作對應的用戶接口事件包括:開始播放、暫停播放、停止播放(即播放結束)、前進播放、后退播放、快速前進播放、快速后退播放中的任一項或任意幾項。將這些用戶接口事件寫入用戶接口事件隊列中,并通知用戶接口事件處理線程進行處理。然后,用戶接口事件處理線程從用戶接口事件隊列中依次讀取最前面的用戶接口事件,執行該用戶接口事件對應的操作。
[0024]在一實施例中,用戶接口操作包括用戶在媒體播放器的操作界面上進行的各種輸入操作,還可以包括非用戶操作的用戶接口操作,例如媒體文件播放結束后自動停止播放。圖2為依據本發明一實施例的用戶操作界面200的示意圖。用戶在使用媒體放器時,可以在用戶操作界面200上對媒體文件進行各種操作。如圖2所示,在方框210中顯示所播放的媒體文件的畫面,在方框220中顯示當前播放該媒體文件的時長“00:45”以及總時長“05:13”,在方框230中顯示了播放的進度,按鈕240可以供用戶滑動來將播放文件定位到其他位置,在方框250中提供了各種操作按鈕,例如,播放、暫停、快進、快退,當媒體文件全部播放完畢時,則停止播放。或者,也可以在用戶操作界面200中不顯示方框250中的各種操作按鈕,而是根據用戶的手勢操作來接收用戶操作。
[0025]在本實施例中,當媒體播放器準備播放一媒體文件時,創建用戶接口事件處理線程和用戶接口事件隊列,并啟動用戶接口事件處理線程,每當接收到一用戶接口操作時,將該用戶接口操作對應的用戶接口事件寫入用戶接口事件隊列中,其中,用戶接口事件處理線程從用戶接口事件隊列中依次讀取用戶接口事件,執行該用戶接口事件對應的操作,可以避免現有技術中直接調用播放器內核來執行用戶接口事件,而是將這些用戶接口事件分配給專門的用戶接口事件處理線程進行處理,能夠提高CPU利用率,有效減少播放失敗、出錯、無響應等錯誤的出現,同時簡化了編程模型,提高了軟件開發人員的開發效率,降低了開發成本。
[0026]圖3為依據本發明另一實施例的開放式操作系統的媒體播放器的控制方法的流程示意圖。參見圖3,該方法包括:
[0027]步驟301,當媒體播放器準備播放一媒體文件時,創建用戶接口事件處理線程和用戶接口事件隊列,并啟動用戶接口事件處理線程。
[0028]步驟301和步驟101描述相同,在此不再贅述。
[0029]步驟302,當媒體播放器準備播放一媒體文件時,創建并啟動播放位置管理線程,其中,播放位置管理線程讀取該媒體文件當前的播放位置并將所讀取的播放位置存儲于內存中。
[0030]媒體播放器在準備播放一媒體文件時,當與媒體文件相關的音頻、視頻、文字等數據準備好后,創建播放位置管理線程,并同時啟動該播放位置管理線程。
[0031]