Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 手把手教你做視頻播放器(一)

手把手教你做視頻播放器(一)

編輯:關於Android編程

前言

通過“計算器”應用我們已經熟悉了安卓應用開發的大致流程,具備了開發的初步知識。

接下來,我們將開始制作一個“視頻播放器”應用,進一步加深對程序開發的學習。

當完成這個“視頻播放器”應用後,大家就能夠獨立開發一類稍微復雜點的安卓應用了。

 

\

 

本文針對的讀者是:

對安卓開發有了初步認識,但還沒有什麼經驗的新人; 對已有的安卓開發經驗沒有系統化整理的開發者;

在開始以前,假設各位已經做好了如下准備:

一台開發用筆記本電腦,並搭建好了開發環境; 一部安卓系統設備(手機或平板電腦); 設備上存放了可以播放的視頻文件; 一根連接電腦和安卓設備的數據線(通常是micro usb數據線); 一到兩天時間; 耐心與求知欲;

本文的代碼,可以從安豆網的示例代碼中下載。
 

第1節 設計方案

1.1 可能的功能點

雖然是一個簡單視頻播放器,但是麻雀雖小五髒俱全,可能需要備以下功能:

將設備上存在的視頻展現出來; 能顯示某個視頻詳細的信息,例如視頻文件大小、視頻分辨率等等; 選擇某個視頻後,能夠播放視頻; 播放視頻時能夠控制視頻的暫停、繼續、快進、快退; 可以全屏幕的播放視頻; 可以提供給系統使用,作為播放視頻文件的可選播放器; 如果有電話接入,播放器能夠自動暫停播放; 可以管理視頻文件,例如刪除某個或者多個視頻; 視頻可以懸浮於其它應用之上播放,一邊刷微信,一邊看視頻;

1.2 功能廣度與功能深度的權衡

每個功能看上去一句話就說完了,但是仔細分析起來,卻有很多細節需要考慮。

例如功能1,如果將設備上所有的視頻都展現出來,那麼,

可能會消耗很長的時間; 每個視頻都要有縮略圖,如果搜尋這些視頻文件的時候,同時為它們創建縮略圖,也許會非常消耗內存,假如視頻非常多,那麼有可能會耗盡安卓系統分配給一個應用最大的內存使用量,導致程序崩潰; 播放器在查找視頻文件並顯示出來的過程中,如果用戶通過別的工具把這個已經顯示到列表的文件刪除了,例如播放器正在刷新列表,把文件1.mp4顯示到了列表中,這時用戶通過PC端的手機管理軟件,把1.mp4這個文件從設備上刪除了(播放器刷新視頻文件的過程還沒有結束),那麼手機的顯示列表上要能馬上發現這個意外,再次更新; 也可能設備上有很多短小的視頻文件,可能只有幾十K或者幾百K,根本就不是用戶關心的視頻,例如微信上接受的短小視頻,用戶就不會使用我們的視頻播放器進行播放; 也可能用戶根本不願意播放器找出某些“敏感”的視頻文件;

這都是我們在開發中需要去實實在在解決的問題。功能1遇到的這些問題,我們都可以通過良好的設計來解決它。不過代價也許就是,

增加了程序的復雜度,花費更多的開發時間; 為了解決一個問題,而引入另外一個更佳不易解決的問題、引入另外一個潛在的bug; 開發鑽進了死胡同,到處都是要解決的問題,不知如何開始了;

要知道,這還只是功能1中提出的問題,不知道別的功能點還會將一個應用的復雜度增加到什麼樣的地步。

所以,對項目規劃的設計師和程序的開發者來說,需要在單個功能完備的深度與多個功能的實現廣度上,作出智慧的取捨。

好在軟件的發布並不是一錘子買賣,可以在發布以後,再對它進行升級。所以我們通常先把最為重要的功能做出來,而對於這些最重要的功能則采用最容易實現的方案。

以後再對功能做出擴充,對實現的方案加以修改,逐步變的越來越完美。這個過程也更適合初學者一步一步的掌握程序設計的思路、積累開發的經驗,知道同樣一個功能,怎麼設計更加合適,為什麼要這樣設計。

於是,對於我們第一個版本的視頻播放器,我們將盡量采用最簡單的設計,不去太多的考慮它的程序結構和執行效果,重點是用簡單而正確的方式把功能做出來,以後再在新的版本中迭代優化。

1.3 現階段的功能

為了簡化問題,我們先對視頻播放器允許的環境和功能做出這樣的假設:

只讀取特定目錄下的視頻文件,例如名稱叫做Video的目錄; 假設用戶沒有那麼BT:在展示視頻列表的時候,用別的工具,把已經展示上去的文件給刪除了; 在列舉視頻文件的時候,因為耗時可能很長,所以可以選擇暫停; 視頻文件的數量不會多的特別離譜,上千上萬個視頻是不會遇到的; 只播放系統原生支持的視頻格式; 播放器在橫屏的時候,自動切換成全屏;在豎屏的時候,占用部分區域,剩下的區域顯示視頻詳細信息; 沒有視頻的播放記錄,用戶主動退出的情況下,下次再播放同樣的視頻會從頭開始; 沒有視頻的管理功能,不能改變視頻文件的位置,不能刪除它,不能修改文件名字; 沒有懸浮播放的功能;

因此,對視頻播放器的界面進行了如下的設計:

 

\

 

1.4 關於遺憾

對於那些沒有在這個階段加入的功能,期待以後加入吧;

對於那些為了簡化開發難度、減少開發時間而采用的簡單設計,期待在下一版程序中優化和完善吧;

當然,別忘了這個應用的目標是:教會大家更多的安卓開發技能。所以在選擇實現方案的時候,著重於原理的展示,而不一定采用執行效率最優的方案。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved