況君

摘要:目前基于Android平臺的智能手機廣泛流行,WlFI網絡也日趨普及,消費者購買手機的目的也不再局限于傳統的電話及短信業務,網絡和娛樂功能也成為其參考的重要部分。文章提出了基于Android平臺的手機在線視頻播放系統的模塊設計和實現過程,通過陛能測試展示了視頻播放器的顯示效果,達到了設計的要求。
關鍵詞:Android;在線視頻播放器;模塊設計
視頻播放器作為智能手機一個必不可缺的重要功能,能夠貼近用戶,方便用戶,能夠引起用戶極大的興趣。但傳統的手機視頻播放器界面單調,功能單一,已經滿足不了當前消費者的需求。
通過對基于Android系統的在線視頻播放器進行分析,本文完成一款能夠實現在線視頻播放功能Android系統視頻播放器。該視頻播放器包含以下功能:(1)實現本地視頻和音頻文件的播放。(2)實現本地視頻和音頻文件的列表顯示。(3)實現己播放文件的列表顯示。(4)實現在線視頻資訊的顯示和在線視頻文件的播放。
1.概要設計
本系統主要包含了啟動界面、主列表、本地文件、最近播放文件、最新資訊、搜索和播放控制界面7個模塊,當用戶啟動模擬器后,經過開機畫面,就會進入啟動的選擇項,然后,用戶就可以根據實際情況和自己的需要,對各個模塊進行操作。各模塊的主要功能分別是:(1)啟動界面:顯示啟動畫面,檢測用戶網絡連接狀態并根據網絡狀態實現跳轉。(2)主列表:顯示搜索、本地文件、最近播放文件和最新資訊幾個模塊。(3)本地文件:本地視頻、音樂文件的列表,并實現一鍵播放。(4)最新資訊:通過web服務,為用戶提供系統推薦的最新視頻信息。(5)最近播放文件:實現最近播放文件的列表,方便用戶重復播放感興趣的視頻音頻文件。(6)搜索:用戶通過該模塊在線搜索視頻文件進行播放。(7)播放控制界面:播放視頻時,顯示播放的畫面,為用戶提供控制播放進度的按鈕及顯示播放進度的進度條。
該系統的模塊結構如圖1所示。
1.1啟動界面
該模塊為Start.java類,其主要功能為顯示軟件啟動畫面并判斷手機的網絡連接狀態。每次程序啟動時,都將為用戶顯示一個啟動畫面(為減少啟動程序的時間,此處的啟動畫面為靜態的圖片)。與此同時,程序自動判斷手機的網絡連接狀態。
1.2主列表
該模塊由MainActivity.java完成,其主要功能是顯示軟件的主要用戶界面,該頁面的布局由線性布局完成。主列表界面提供4個選項:本地文件、最近播放文件、最新資訊和搜索。用戶可以通過主列表界面選擇本地文件播放,也可搜索網絡視頻文件播放,同時主列表還為用戶提供最新的視頻資訊,并可通過己播放視頻列表重復欣賞感興趣的視頻。
1.3最新資訊
該模塊是運用系統的網絡通信功能,由web服務器端為用戶提供的最新視頻資訊。每條資訊都設置有事件監聽器,用戶通過點擊自己感興趣的視頻即可觸發播放器,從而連接到視頻的地址,進行在線視頻播放。
1.4本地文件
本地文件模塊運用SQLite數據庫和ListView類來實現數據的搜集、管理和列表顯示。在列表中每一條視頻或音頻信息上添加了監聽器,如果用戶點擊該條信息則自動進行播放。
1.5本地播放
本模塊的主要功能是將用戶最近播放過的視頻或音頻文件單獨列表顯示,方便用戶在需要重復播放感興趣的視頻或音樂時快捷的播放,無需再進入本地文件或進行網上搜索。最近播放模塊和本地文件相似,也使用了SQLite數據庫來存儲數據信息,使用ListView類來顯示這些信息。
1.6搜索
本模塊視頻的實現應用了HTTP協議分發的暫進式視頻下載方式,支持3gp的視頻格式。搜索模塊采用客戶端和服務器的方式進行網絡視頻的搜索并進行播放。
1.7播放控制界面
該模塊功能由Vedioplayer.java類完成,頁面布局由Vedioplayer.xml完成。模塊中主要包括快進、快退、暫停按鈕、菜單、進度條還有播放界面5個部分??爝M、快退、暫停均用于控制播放的進度,菜單用于顯示最近播放的3條信息,進度條用于顯示播放和調整播放的進度。播放畫面由SurfaceView方法來實現。
2.詳細設計
2.1網絡判斷
系統不會切換至主列表的情況包含無網絡和無wifi網絡2種情況,每種情況都應該單獨判斷,首先判斷是否有網絡連接,這里網絡已經連接的情況不區分是GPRS網絡還是wifi網絡,后面會有后續的判斷。如果檢測到無網絡連接,需提示用戶檢查網絡連接;如果已經連接網絡,則進行下一步,即是否為wifi網絡的判斷。
2.2主列表的實現
主列表模塊實際是由幾個圖片按鈕構成的按鈕,如點擊最近播放即進入最近播放文件列表,點擊本地文件即進入本地文件模塊。
主列表功能的實現由MainActivity.java類實現,該類中最重要的是用戶點擊的時間監聽及處理,其頁面布局由MainActivity.xm實現,該類采用線性布局。
2.3本地文件及歷史播放模塊的實現
內存卡和照相機中的視頻文件分列在內存卡和照相機文件夾中而將所有內存中的音頻文件都存儲在音樂文件夾中。歷史播放模塊的設計與本地文件模塊的設計類似,同樣采用SQLite數據庫來存放數據表單,通過ListView來顯示表單中的條目,并為每一個條目設置了ItemClick事件監聽。
2.4網絡通信的實現
應用HTTP協議,其主要特點為:支持客戶/服務器模式,簡單陜速,靈活,無連接,無狀態。
2.5最新資訊的實現
最新資訊運用系統的網絡通信功能,由web服務器端為用戶提供的最新視頻資訊。每條資訊都設置有事件監聽器,用戶通過點擊自己感興趣的視頻即可觸發播放器,從而連接到視頻的地址,進行在線視頻播放。
2.6在線視頻搜索的實現
當用戶在搜索輸入框中輸入視頻名稱并點擊提交按鈕時,應用程序即將用戶輸入信息傳送給web服務器。服務器在數據庫中搜索與用戶輸入信息相匹配的視頻信息,如果存在,則向客戶端返回該視頻的確認信息并播放;如果不存在,則向用戶返回視頻不存在信息。
2.7播放控制界面的實現
播放界面是視頻播放器設計的最主要部分,優秀的用戶界面才能引起用戶的強烈使用愿望,本視頻播放器的用戶界面主要通過surfaceView這個顯示控件來顯示視頻文件的畫面,用seekBar組件來顯示及控制視頻的播放進度還有ImageButton來實珊陜進、快退、暫停、播放等按鈕的功能,每一個按鈕都會觸發mediaplay事件,然后通過按鈕id來判斷是哪一個按鈕上發生的事件。
3.系統測試及總結
測試是相當重要的一個環節,系統測試的目標是為了發現軟系統中的錯誤,通過測試發現錯誤之后還必須診斷并改正錯誤,這就是測試的目的,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出現的問題進行分析和評估。endprint