摘 要:本文對Android中K歌系統(tǒng)的設計進行分析,通過底層服務模塊、錄歌模塊和動畫組件三方面對輔助Android在K歌系統(tǒng)中的實現(xiàn)進行深入探究。希望能為有關人員提供幫助。
關鍵詞:UI框架;服務模塊;動畫組件
引言:隨著時代的進步,移動終端市場需求呈上升趨勢,人們對移動終端的娛樂要求越來越高,在此大環(huán)境下,Android的K歌系統(tǒng)的設計與實現(xiàn)迫在眉睫。
1.Android中K歌系統(tǒng)的設計
1.UI框架設計
因為應用的需求量大,UI數(shù)量多,在手機交互頁面會有多次的跳轉,所以造成頁面變化數(shù)量增多,此時就需要能支撐整個系統(tǒng)的UI框架。安卓系統(tǒng)主要設計單一的Activity和多種Fragment的模式,其關鍵性在于只能有一個最為主要的功能模塊來充當頁面容器的Activity,在此基礎上,Activity只能被當做容器,其內在不存在實際的UI元素和動作。但是在此Activity中可以支撐兩個及兩個以上的頁面,每個頁面中都占據(jù)著主Fragment。然而單一的頁面可以對需要顯示頻率高的和內在結構性強的頁面模塊進行區(qū)分,將子Fragment增添到根Fragment之上,并且需要依據(jù)實際中對子Fragment進行顯示或者隱藏。這樣的安排共有兩點好處,第一點,能將UI充分的表現(xiàn)出來,因為Fragment能根據(jù)實際的需要隨意添加隱藏和刪除功能,促使UI的等次劃分更加明確,能夠靈活的實現(xiàn)。第二點,頁面模塊借助Fragment來實現(xiàn),并且能在任意頁面上重復使用,將系統(tǒng)進行精簡。
1.2底層服務設計
底層服務設計共有三個方面,分別在音樂播放器、錄音和合成。錄音器中以錄音功能和進度控制功能為主,錄音模塊有開始、結束、暫停三種操作借口供外界使用,實現(xiàn)外界對其進行操作。錄音器需要用戶能夠根據(jù)所需隨意的調整歌曲進度,所以錄音器需要添加進度控制作用,一旦錄歌時的進度被更改時,應第一時間對錄音的新合成地點進行記錄。播放器則為用戶提供了播放功能,首先最原始的本地播放器為Android系統(tǒng)中的MediaPlayer,雖然可以作為播放媒介,但是無法對原有的文件進行存儲,因此需要借助額外的播放媒介。最后,在錄音重播功能中,主要在錄音素材進行存儲之后,在音頻的合成前進行應用,但是此時聲音和伴奏仍然是兩個不同的軌道,運用錄音重播功能可將兩個文件合二為一,為用戶提供預覽。合成器是將錄音以及伴奏合成一個單獨的音頻,對其進行編號,最后得到一個完整的音頻文件。
2.輔助Android在K歌系統(tǒng)中的實現(xiàn)
2.1底層服務模塊
底層模塊主要分為三個方面,分別為錄音、播放和編碼合成。第一,錄音功能需要實現(xiàn)對錄音器進行初始化,但是一旦發(fā)生初始化不成功的現(xiàn)象就會直接釋放素材,并回到監(jiān)聽器中對用戶進行告知。當初始化成功時也會第一時間通知用戶,并準備錄音。在錄音時,可以對錄音狀態(tài)進行主觀調整,任意操作暫停、播放等功能,錄音器會及時儲存緩沖中的素材。第二,對于播放雙音頻文件和播放器的應用,由于PcmM4aPlayer會將PCM文件中的素材直接載入AudioTrack,會造成播放和實際的操作存在不契合的情況。第三,合成器的應用。因為要將最開始的錄音PCM素材和伴奏音頻數(shù)據(jù)進行合并,所以需原先的M4A文件轉換成PCM數(shù)據(jù),并且在展開解碼之前,按照時間軸將兩個文件進行對齊。
2.2動畫組件
組成動畫效果的每一個圖層中,外部業(yè)務會將自身合成完成后交接至動畫組件,動畫效果由動畫組件來完成,外部業(yè)務可以任意對動畫進行操控。首先,設置畫筆的顏色和文字屬性為原始狀態(tài),然后對該線程的活躍情況進行事先了解,以預防由于外界的啟動頻繁而造成動畫線程失誤。在進入線程之后應當首要判斷暫停繪制動畫的必要性,暫停繪制時系統(tǒng)會進入一種等候狀態(tài),如果不需要的話就開始進行繪制工作,繪制過程會設計到有關的全部圖層,所有的圖層中所繪制的動畫組件都顯示在canvas上。在繪制完畢之后,系統(tǒng)會有20ms的間歇等候狀態(tài),此狀態(tài)過后便可進行再一次的繪制,以此實現(xiàn)一秒中畫面數(shù)量高達50幀的效果。在進入系統(tǒng)休眠等待之后,外界仍然可以對動畫繪制進行操控,并且可以暫停動畫或清空全部圖層[1]。
2.3錄歌模塊
一開始將所需的所有文件進行下載存儲之后,會直接進入到主頁面,把下載的歌詞文件移交至系統(tǒng)中的歌詞組件,并將頁面和服務與用戶進行綁定,登錄所需要的監(jiān)聽器,進行錄音和播放。對著伴奏的播放進行錄音,并對齊時間軸進行歌詞的匹配,歌詞將隨著伴奏進行滾動。登錄狀態(tài)的服務器會不停的接受底層的回調,及時獲得播放的時間進度和評分情況,并第一時間對數(shù)據(jù)的更新狀況顯示到UI頁面上。在錄制的過程,伴奏、歌詞、錄音狀況和評分標準都是同步的,都是以伴奏為標準。
結論:綜上所述,本文依據(jù)K歌軟件系統(tǒng)內部的實際需求和總體設計進行分析,對系統(tǒng)內部的素材設計,包括底層服務、動畫組件等框架設計進行詳細闡述,為實際的應用提供幫助。
參考文獻:
[1]陳平.UI自適應的Android軟件自動化測試框架研究[J].安徽冶金科技職業(yè)學院學報,2017,27(02):43-45.
作者簡介:
遲俁鑫(1996),男,籍貫:吉林省遼源市,職稱和學歷:學生,大學本科,研究方向或專業(yè):計算機工程系、軟件工程。