天天看點

《BREW進階與精通——3G移動增值業務的營運、定制與開發》連載之49---BREW SDK 九大功能之多媒體系統

版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/5435864

對多媒體的支援主要是IMedia接口實作的,從IMedia接口衍生出很多的媒體接口,如圖11-3所示:

圖11-3: IMedia接口支援的部分媒體格式

IMedia接口為所有BREW多媒體對象提供了一個抽象基類,提供了媒體對象的播放、記錄及與播放/記錄相關的搜尋、停止、暫停和繼續等操作功能,開發者通過IMedia接口可以進行所有多媒體對象的操作。BREW中的多媒體架構如圖11-4所示。

圖11-4: 手機中的多媒體構架

            媒體的播放狀态符合有限狀态機模型,一般有6種狀态:idle,Ready,Play,Play_Pause, Record和Record_Pause, IMedia使用媒體的狀态機如圖11-5所示。

圖11-5: IMedia使用的多媒體狀态機

使用IMedia接口的各種方法必須按照此狀态機的狀态進行轉換,這樣可以保證最大限度的使用。如果狀态出錯,必須重新設定狀态機。

            IMedia 播放多媒體的流程如圖11-6所示,顯示了多媒體對象的狀态在Ready和Play之間的變化。

圖11-6:IMedia 播放多媒體的流程

針對圖像處理,BREW3.x也提供了豐富的支援。BREW應用可以使用IBitmap 和IDisplay進行位圖操作,IDIB是由IBitmap派生的一個接口和資料結構。通過IDIB的資料結構成員變量可以定位位圖中圖像點(pixel)的位置,以及如何解析圖像點的顔色值,通過IDIB結構可以實作對位圖資料的直接操作。對圖像的縮放處理一種方法是通過ITransform接口實作,需要通過目标位圖擷取ITransform句柄,縮放完成的目标位圖位置由使用者指定,縮放要求通過AEETransformMatrix進行設定,另一種方法是通過IBitmapScale,IBITMAPROT和IBitmapFX結合使用來實作。對于顯示螢幕旋轉事件處理,可以通過IDISPLAY_SetPrefs來實作。