專利名稱:一種采用Android系統(tǒng)控制DVD設(shè)備的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于Android系統(tǒng)領(lǐng)域,尤其涉及一種采用Android系統(tǒng)控制DVD設(shè)備的方法及系統(tǒng)。
背景技術(shù):
Android系統(tǒng)在車載設(shè)備中應(yīng)用越來越廣泛,Android系統(tǒng)目前不直接支持車載DVD設(shè)備,各個車載設(shè)備廠商目前采用的方法是通過一個MCU來控制車載DVD的視頻和音頻播放,DVD功能與Android系統(tǒng)獨立運行。這種方法存在很大的弊端,添加新的硬件增加系統(tǒng)成本。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種采用Android系統(tǒng)控制DVD設(shè)備的方法,旨在解決現(xiàn)有技術(shù)中通過一個MCU來控制車載DVD的視頻和音頻播放,添加新的硬件增加系統(tǒng)成本的問題。本發(fā)明是這樣實現(xiàn)的,本發(fā)明實施例提供一種采用Android系統(tǒng)控制DVD設(shè)備的方法,所述方法包括以下步驟:在Android系統(tǒng)的硬件抽象層創(chuàng)建DVD硬件抽象模塊,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口 ;導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用;在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù)。本發(fā)明實施例還提供了一種采用Android系統(tǒng)控制DVD設(shè)備的系統(tǒng),所述系統(tǒng)包括:DVD硬件抽象模塊創(chuàng)建單元,用于在Android系統(tǒng)的硬件抽象層創(chuàng)建DVD硬件抽象模塊,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口 ;操作接口導(dǎo)出單元,用于導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用;DVD服務(wù)模塊創(chuàng)建單元,用于在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù)。本發(fā)明實施例與現(xiàn)有技術(shù)相比,有益效果在于:通過在Android系統(tǒng)的HAL層,添加DVD設(shè)備抽象代碼,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口;導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用;在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù);擴展Android系統(tǒng)的媒體播放器服務(wù)模塊,以兼容DVD光盤媒體文件的播放,實現(xiàn)Android系統(tǒng)直接控制車載DVD設(shè)備,降低成本。
圖1是本發(fā)明實施例提供的采用Android系統(tǒng)控制DVD設(shè)備的方法的流程示意圖;圖2是本發(fā)明實施例提供的采用Android系統(tǒng)控制DVD設(shè)備的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明實施例中,采用Android系統(tǒng)直接控制DVD設(shè)備,在軟件層面上實現(xiàn)對DVD設(shè)備的控制,降低了系統(tǒng)成本。請參閱圖1,為本發(fā)明實施例提供的采用Android系統(tǒng)控制DVD設(shè)備的方法的實現(xiàn)流程,其包括以下步驟:在步驟SlOl中,在Android系統(tǒng)的硬件抽象層創(chuàng)建DVD硬件抽象模塊(DVD HAL模塊),對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口 ;在本發(fā)明實施例中,使用C/C++語言編寫DVD HAL模塊,對控制DVD設(shè)備的動作進行抽象封裝,例如對控制DVD設(shè)備的播放、停止、快進、后退、查詢設(shè)備狀態(tài)、出倉以及進倉等動作進行抽象封裝,以驅(qū)動DVD設(shè)備。將編寫的DVD HAL模塊以*.so動態(tài)庫形式的文件存在于Android系統(tǒng)目錄/system/lib/hw下,命名為libdvd.so。將DVD HAL模塊以dv d作為設(shè)備標識,注冊到Android系統(tǒng)硬件抽象層(HAL層)中,以及注冊DVD設(shè)備的播放、停止、快進、后退、查詢設(shè)備狀態(tài)、出倉以及進倉等操作接口,為上層提供操作接口,實現(xiàn)對DVD設(shè)備的控制。具體地,定義一個名為g_dvd_dev的DVD設(shè)備信息的靜態(tài)結(jié)構(gòu)變量struct dvd_dev_info,其中:
struct dvd—dev—info
{
thar *name; //DVD 設(shè)備名稱
char *port; //DVD 設(shè)備端口
int opened;//DVD設(shè)備倉門狀態(tài)
int disc_inserted;//DVD設(shè)備光盤是否插入標志
int disc—ok; //DVD設(shè)備插入的光盤是否正常標志 int disc—scan; //DVD設(shè)備插入的光盤是否已經(jīng)掃描標志
struct dvd—ops *ops; //DVD設(shè)備操作函數(shù)結(jié)構(gòu)體
};其中,結(jié)構(gòu)體struct dvd_ops用于表示特定DVD設(shè)備的操作函數(shù)。
struct dvd ops
{
int (*p.lay)(void *parm); //DVD 播放函數(shù)int (*stop)(void *parm); //DVD 停止播放函數(shù)int (*open)(v0.1d *parm); //DVD 岀倉函數(shù)int: (*dose)(v0.1d *pann); //DVD 進倉函數(shù)int (*next)(void *parm); //DVD 快進函數(shù)int (*forward)(void *parm); //DVD 后退函數(shù)int (*check)(void *parm); //DVD 狀態(tài)查詢函數(shù)
I在步驟S102中,導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用。在本發(fā)明實施例中,在DVD HAL模塊和DVD HAL模塊的上層之間,通過創(chuàng)建DVD HALJNI接口模塊,導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,實現(xiàn)DVD HAL模塊的上層與所述DVD HAL模塊的交互。本實施例中,在DVD HAL JNI接口模塊中注冊DVD HAL模塊提供的控制DVD設(shè)備的播放、停止、快進、后退、查詢設(shè)備狀態(tài)、出倉以及進倉等操作接口,并且使用dvd作為設(shè)備標識參數(shù)來調(diào)用Android系統(tǒng)的hw_get_module O函數(shù)以獲取DVD HAL模塊提供的操作接口,實現(xiàn)DVD HAL模塊接口的導(dǎo)出。進而,DVD HAL模塊的上層可通過調(diào)用DVD HAL JNI接口模塊導(dǎo)出的DVD硬件抽象模塊為上層提供的操作接口,實現(xiàn)對DVD設(shè)備控制。在步驟S103中,在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù);在本發(fā)明實施例中,在DVD硬件抽象模塊的上層創(chuàng)建一個基于Android Java的系統(tǒng)服務(wù),即DVD服務(wù)模塊,該DVD服務(wù)模塊可調(diào)用導(dǎo)出的DVD硬件抽象模塊為上層提供的控制DVD設(shè)備的播放、停止、快進、后退、查詢設(shè)備狀態(tài)、出倉以及進倉等操作接口。從而,Android系統(tǒng)的媒體播放應(yīng)用程序可以使用DVD服務(wù)模塊來獲取服務(wù),實現(xiàn)對DVD設(shè)備的控制。作為本發(fā)明另一優(yōu)選實施例,所述采用Android系統(tǒng)控制DVD設(shè)備的方法還可以包括步驟:檢查需播放媒體文件的格式,若是DVD光盤媒體文件,則通過DVD服務(wù)模塊控制DVD設(shè)備播放;若不是DVD光盤媒體文件,則通過Android系統(tǒng)的媒體播放器服務(wù)模塊(MediaPlayer服務(wù)模塊)播放。具體地,在Android系統(tǒng)原生的MediaPlayer服務(wù)模塊的基礎(chǔ)上,添加一項新的功能,即檢查需要播放的媒體文件是否有dvd前綴,如果有,利用DVD服務(wù)模塊來獲取DVD服務(wù)對象,調(diào)用相應(yīng)的操作接口,控制DVD設(shè)備實現(xiàn)DVD光盤媒體文件的播放功能;如果沒有,則執(zhí)行Android系統(tǒng)原本媒體播放操作,通過Android系統(tǒng)的媒體播放器服務(wù)模塊播放。從而擴展了 Android系統(tǒng)的媒體播放器服務(wù)模塊(MediaPlayer服務(wù)模塊)的功能,以兼容DVD光盤媒體文件的播放。綜上所述,本發(fā)明實施例通過在Android系統(tǒng)的HAL層,添加DVD設(shè)備抽象代碼,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口 ;導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用;在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù);擴展Android系統(tǒng)的媒體播放器服務(wù)模塊,以兼容DVD光盤媒體文件的播放,實現(xiàn)Android系統(tǒng)直接控制車載DVD設(shè)備,降低成本。對應(yīng)的,如圖2所示,為本發(fā)明實施例提供的采用Android系統(tǒng)控制DVD設(shè)備的系統(tǒng)的結(jié)構(gòu)示意圖。所述采用Android系統(tǒng)控制DVD設(shè)備的系統(tǒng)包括:DVD硬件抽象模塊創(chuàng)建單元201,用于在Android系統(tǒng)的硬件抽象層創(chuàng)建DVD硬件抽象模塊,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口。操作接口導(dǎo)出單元202,用于導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用。DVD服務(wù)模塊創(chuàng)建單元203,用于在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù)。作為本發(fā)明另一優(yōu)選實施例,所述采用Android系統(tǒng)控制DVD設(shè)備的系統(tǒng)還可以包括:媒體文件格式檢查單元204,檢查需播放媒體文件的格式,若是DVD光盤媒體文件,則通過DVD服務(wù)模塊控制DVD設(shè)備播放;若不是DVD光盤媒體文件,則通過Android系統(tǒng)的媒體播放器服務(wù)模塊播放。本發(fā)明實施例提供的采用Android系統(tǒng)控制DVD設(shè)備的系統(tǒng)可以使用在前述對應(yīng)的方法實施例中,詳情參見上述實施例一的描述,在此不再贅述。綜上所述,本發(fā)明實施例通過DVD硬件抽象模塊創(chuàng)建單元在Android系統(tǒng)的HAL層,添加DVD設(shè)備抽象代碼,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口 ;通過操作接口導(dǎo)出單元導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用;DVD服務(wù)模塊創(chuàng)建單元在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù);通過媒體文件格式檢查單元擴展Android系統(tǒng)的媒體播放器服務(wù)模塊,以兼容DVD光盤媒體文件的播放,實現(xiàn)Android系統(tǒng)直接控制車載DVD設(shè)備,降低成本。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如ROM/RAM、磁盤、光盤等。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種采用Android系統(tǒng)控制DVD設(shè)備的方法,其特征在于,所述方法包括以下步驟: A、在Android系統(tǒng)的硬件抽象層創(chuàng)建DVD硬件抽象模塊,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口 ; B、導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用; C、在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù)。
2.按權(quán)利要求1所述的方法,其特征在于,所述方法還包括步驟: D、檢查需播放媒體文件的格式,若是DVD光盤媒體文件,則通過DVD服務(wù)模塊控制DVD設(shè)備播放;若不是DVD光盤媒體文件,則通過Android系統(tǒng)的媒體播放器服務(wù)模塊播放。
3.按權(quán)利要求1所述的方法,其特征在于,所述步驟A中對控制DVD設(shè)備的動作進行抽象封裝具體為對控制DVD設(shè)備的播放、停止、快進、后退、查詢設(shè)備狀態(tài)、出倉以及進倉動作進行抽象封裝。
4.按權(quán)利要求1所述的方法,其特征在于,所述DVD硬件抽象模塊與DVD服務(wù)模塊通過Android系統(tǒng)的JNI接口機制進行交互。
5.按權(quán)利要求1所述的方法,其特征在于,所述Android系統(tǒng)的媒體播放應(yīng)用程序與DVD服務(wù)模塊通過Android系統(tǒng)的binder機制進行交互。
6.一種采用Android系統(tǒng)控制DVD設(shè)備的系統(tǒng),其特征在于,所述系統(tǒng)包括: DVD硬件抽象模塊創(chuàng)建單元,用于在Android系統(tǒng)的硬件抽象層創(chuàng)建DVD硬件抽象模塊,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口 ; 操作接口導(dǎo)出單元,用于導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用; DVD服務(wù)模塊創(chuàng)建單元,用于在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù)。
7.按權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 媒體文件格式檢查單元,檢查需播放媒體文件的格式,若是DVD光盤媒體文件,則通過DVD服務(wù)模塊控制DVD設(shè)備播放;若不是DVD光盤媒體文件,則通過Android系統(tǒng)的媒體播放器服務(wù)模塊播放。
8.按權(quán)利要求6所述的方法,其特征在于,所述步驟A中對控制DVD設(shè)備的動作進行抽象封裝具體為對控制DVD設(shè)備的播放、停止、快進、后退、查詢設(shè)備狀態(tài)、出倉以及進倉動作進行抽象封裝。
9.按權(quán)利要求6所述的方法,其特征在于,所述DVD硬件抽象模塊與DVD服務(wù)模塊通過Android系統(tǒng)的JNI接口機制進行交互。
10.按權(quán)利要求6所述的方法,其特征在于,所述Android系統(tǒng)的媒體播放應(yīng)用程序與DVD服務(wù)模塊通過Android系統(tǒng)的binder機制進行交互。
全文摘要
本發(fā)明適用于Android系統(tǒng)領(lǐng)域,提供了一種采用Android系統(tǒng)控制DVD設(shè)備的方法及系統(tǒng)。所述方法包括在Android系統(tǒng)的硬件抽象層創(chuàng)建DVD硬件抽象模塊,對控制DVD設(shè)備的動作進行抽象封裝,為上層提供操作接口;導(dǎo)出DVD硬件抽象模塊為上層提供的操作接口,提供給DVD硬件抽象模塊的上層調(diào)用;在DVD硬件抽象模塊的上層創(chuàng)建DVD服務(wù)模塊,以調(diào)用導(dǎo)出的操作接口為Android系統(tǒng)的媒體播放應(yīng)用程序提供操作DVD設(shè)備的服務(wù)。本發(fā)明實現(xiàn)了Android系統(tǒng)直接控制DVD設(shè)備,降低系統(tǒng)成本。
文檔編號G11B19/02GK103093777SQ20121058560
公開日2013年5月8日 申請日期2012年12月28日 優(yōu)先權(quán)日2012年12月28日
發(fā)明者張迪 申請人:Tcl集團股份有限公司