android Ringdroid原始碼分析之一大體結構篇

NO IMAGE


大家好,我是西電移動開發小團隊DHL的負責人,團隊最近在做基於anroid平臺的手機鈴音製作軟體。暑假實習的時候接觸ringdroid原始碼,因為那是個開源的專案,很多人修改,覺得很強大。可以實現對MP3音樂檔案的擷取,顯示波形,設為鈴聲通知等功能,還有分配給自己通訊錄的上的聯絡人等功能。很是強大,不過我們要做的功能比這個還要複雜,要實現,淡入淡出,變音調,將唱歌的人的聲音自定義,比如變成老人,小孩等的聲音。為了完成這個專案,我研究了RINGDROID原始碼,還有各種音訊格式的檔案的格式,比如MP3,WAV。作為團隊的負責人,還要為團隊的產品UI,互動,協調各方面的資源。這是一系列的博文,伴隨著這個專案的結束,因為團隊之前做的基於android的手機照片處理軟體在anroid market上下載量不錯,堅定了我們開發這款軟體的資訊。下面我來說說我研究ringdroid原始碼的大致結構。

由上面看到有兩個包,一個是進行具體處理的多個ACTIVITY,另一個是各種音訊檔案分析的JAVA檔案。下面我說一下自己研究的理解的每一個JAVA檔案的作用。首先是RingdroidSelectActivity,這個Activity主要是用來選擇SD卡中的音訊檔案,並且分析音訊檔案的標頭檔案資訊,將歌手名,專輯等資訊顯示出來。點選某個音樂檔案後,就會進入那個鈴音編輯的ACTIVITY,RingdroidEditActivity也是這個軟體的核心Activity,在這個介面會顯示顯示音訊的波形,你可以快進,可以拖動顯示起始時間,和結束時間,可以放大縮小波形。當你編輯完之後,點儲存按鈕,就會彈出FileSaveDialog這個對話方塊,你可以選擇儲存mp3檔案為鈴聲,通知,警告聲,提示聲。當你儲存完之後就會進入AfterSaveAction這個Activity,這個activity主要是用來問你是不是要設為預設的鈴聲,還是要把他分給你的聯絡人。但你點選分配給自己的聯絡人的時候,就會彈出chooseContact這個對話方塊,你可以搜尋自己的聯絡人,把你覺得不錯的人,把鈴聲分配給他。WaveformView這個Activity主要是用來顯示波形的,具體怎麼實現,看的一知半解,具體還會仔細研究。SongMetadataReader這個activity主要是用來讀取音訊檔案的資訊。

下面的com.ringdroid.soundfile包裡的檔案主要是對各種格式的音訊檔案的格式分析,比標頭檔案,RingDroid真的很強大,各種格式的音訊檔案都能夠支援。

以上是我對Ringdroid原始碼的結構的大致分析,算是拋磚引玉,之後回詳細分析每一個類的作用,希望大家能夠和我一起探討,希望在做軟體的過程中,能夠和大家成為朋友,共同合作,把市面上可能最強大的手機鈴音製作軟體做出來。

博主聯絡方式:QQ:851959715TEL13484674647。團隊郵箱:[email protected],歡迎各位聯絡。