android SoundRecorder設計二

二.SoundRecorder類介紹

先介紹RemainingTimeCalculator類。它負責計算存儲介質剩餘空間能夠存放多長的錄音文件。其中的timeRemaining()函數負責計算剩餘時間,取文件大小限制和空間大小限制的較小的一個來計算剩餘時間。

mCurrentLowerLimit = result < result2

            ? DISK_SPACE_LIMIT : FILE_SIZE_LIMIT;

 

SoundRecorder類本身是一個Activity。該類負責實現一切向用戶顯示的部分:包括界面,對各種操作的響應。錄音、保存錄音、播放錄音等功能通過調用Recorder類中的方法實現。在SoundRecorder中包含一個Recorder類的對象mRecorder。

作為Activity類的子類,SoundRecorder重載瞭父類的多個函數:

onCreate() onDestroy()(從啟動到完全銷毀)

onStart() onStop()(從可視到不可視)

onPause() (從可操作到不可操作)

這幾個函數包含Activity在不同狀態間切換時需要的操作。這裡指的狀態切換是因為SoundRecorder程序之外的影響,如手機休眠、程序掛起、從SoundRecorder程序切換到其他程序等。

 

此外SoundRecorder還重載瞭幾個函數:

onConfigurationChanged();橫豎屏切換時,刷新UI界面。

onSaveInstanceState(Bundle outState);將Recorder的狀態保存到Bundle,實際調用的是上面提到的saveState()函數。當SoundRecorder因為某些原因需要中斷時,狀態被保存,然後在重啟時由onCreate()中的相應代碼讀取Bundle中的狀態值,回復中斷前程序的狀態,實際調用的是上面提到的restoreState()函數。

onPrepareOptionsMenu()、onOptionsItemSelected(),這兩個函數負責實現menu鍵功能。

 

摘自 LuoXianXiong,您的夥伴

發佈留言