蘇國慶 張輝 李媛媛
摘要:隨著移動(dòng)網(wǎng)絡(luò)的普及和教育信息化的不斷發(fā)展,面向移動(dòng)終端的微課視頻平臺(tái)開發(fā)成為研究的熱點(diǎn)。針對(duì)微課平臺(tái)視頻點(diǎn)播的實(shí)際需求,用Servlet、JDBC、MSSQL完成服務(wù)端開發(fā),用CoverFlow開源組件實(shí)現(xiàn)了客戶端視頻展示,采用H.264視頻編碼、解碼技術(shù)及JSON數(shù)據(jù)解析實(shí)現(xiàn)遠(yuǎn)程影音的播放、下載、收藏與跳轉(zhuǎn)等功能。為大容量的移動(dòng)視頻數(shù)據(jù)傳輸提供一個(gè)較理想的解決方案。
關(guān)鍵詞:微課;JSON數(shù)據(jù);Andriod;視頻編碼
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)13-0197-02
Abstract: With the continuous development of mobile network popularization and education information and mobile terminal micro lesson video platform design and development has become a research hotspot. For micro class platform video on demand of the actual demand, servlet, JDBC, SQL Server development, using coverflow open source components to achieve the client video display, to realize the remote video playback, download, collection and jump function based on H.264 video coding, decoding technique, and the JSON data analytical.Provides an ideal solution for mobile video data transmission of large capacity.
Key words:Micro class;JSON data;Andriod;video coding
隨著智能移動(dòng)終端的日益普及,移動(dòng)學(xué)習(xí)突破了傳統(tǒng)的教學(xué)模式。教務(wù)管理人員、教師和學(xué)生之間實(shí)現(xiàn)了更為靈活的交互式教學(xué)活動(dòng),這為大規(guī)模普及多媒體教學(xué)提供了一個(gè)良好的發(fā)展環(huán)境。因此,面向智能移動(dòng)終端,特別是針對(duì)學(xué)校微課教學(xué)開發(fā)適用的視頻點(diǎn)播平臺(tái)有著廣闊發(fā)展前景和實(shí)用價(jià)值。
1 Andriod系統(tǒng)
Android是以Linux為核心的手機(jī)操作平臺(tái),作為一款開放式的操作系統(tǒng),允許開發(fā)者使用多種編程語言來開發(fā) Android應(yīng)用程序。整體架構(gòu)分為應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和linux核心層。另外,包括一些核心應(yīng)用程序,如電話、短信、音樂、視頻、日歷、地圖、照相機(jī)、瀏覽器、圖庫等。Android的多媒體部分框架涉及應(yīng)用程序、Java框架層、C語言框架、硬件抽象層等環(huán)節(jié),提供標(biāo)準(zhǔn)多媒體API供上層相關(guān)應(yīng)用程序調(diào)用。
2 關(guān)鍵技術(shù)
2.1 JSON數(shù)據(jù)解析轉(zhuǎn)換原理
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,具有良好的可讀和便于快速編寫的特性。JSON采用兼容性很高的文本格式。JSON的數(shù)據(jù)格式非常簡單,可以用JSON傳輸一個(gè)簡單的String、Number、Boolean,也可以傳輸一個(gè)數(shù)組或者復(fù)雜的Object對(duì)象。服務(wù)器處理的JSON數(shù)據(jù)最終都會(huì)轉(zhuǎn)化成簡單的JavaScript對(duì)象,也就是可以簡便閱讀JSON對(duì)象轉(zhuǎn)化成的字符串。
2.2 Andriod環(huán)境下視頻編碼解碼技術(shù)
H.264 是MPEG-4標(biāo)準(zhǔn)定義的最新視頻編碼格式,是一種高性能的視頻編碼技術(shù),同時(shí)也是技術(shù)含量最高、代表最新技術(shù)水平的視頻編碼格式。在繼承以往成熟的編碼技術(shù)的基礎(chǔ)上,具有更高的編碼效率,增加差錯(cuò)恢復(fù)能力,網(wǎng)絡(luò)適應(yīng)能力更強(qiáng)。H.264分為視頻編碼層和網(wǎng)絡(luò)提取層兩個(gè)層次結(jié)構(gòu)。H.264在無線傳輸中的架構(gòu)如圖1所示:
在視頻編碼結(jié)束之后,需要將編碼好的視頻數(shù)據(jù)解碼得到編碼之前的視頻數(shù)據(jù),以下是官方標(biāo)準(zhǔn)的H.264解碼器如圖2所示:
視頻解碼過程是在初始化過程結(jié)束后對(duì)色度系數(shù)進(jìn)行判斷,得到NC計(jì)算公式,根據(jù)NC的值選擇表格。H.264視頻編碼算法的解碼過程如圖3所示:
借助流媒體技術(shù)和網(wǎng)絡(luò)通信技術(shù),通過編碼、發(fā)布和播放等步驟來實(shí)現(xiàn)視頻播放。系統(tǒng)由視頻發(fā)布處理、視頻播放等模塊組合而成,視頻發(fā)布處理模塊接收到視頻流之后,將視頻流發(fā)布到流媒體服務(wù)器,由流媒體服務(wù)器向用戶終端提供視頻播放服務(wù)。視頻播放模塊位于用戶終端,流媒體服務(wù)協(xié)議與服務(wù)器端的視頻發(fā)布處理模塊交互,播放源從而可以選擇合適的媒體源進(jìn)行播放。
3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3.1數(shù)據(jù)庫的分析
系統(tǒng)選擇的數(shù)據(jù)庫是輕型的嵌入式SQLite數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),占用的資源非常低,在嵌入式設(shè)備中,所需內(nèi)存更是微乎其微。重點(diǎn)是它能夠支持windows / Linux/ Unix等主流的操作系統(tǒng),同時(shí)能夠跟很多 程序語言如C#、PHP、Java等相結(jié)合。
3.2 視頻播放模塊
視頻播放模塊涉及到類:Video.java、IVideo.java、VideoService.java、VideoManager. java、VideoServlet.java。
各類的具體使用情況如下:
Video.java:此類中主要包含用戶點(diǎn)擊觀看的視頻所包含的的視頻具體信息。
IVideo.java:此類是視頻的接口層,對(duì)數(shù)據(jù)庫實(shí)現(xiàn)增刪改查。
VideoService.java:此類是實(shí)現(xiàn)用戶對(duì)視頻所需要的服務(wù)。
VideoManager.Java:此類是實(shí)現(xiàn)對(duì)視頻所需的功能實(shí)施具體操作。
VideoServlet.java:此類是獲取視頻信息,即得到視頻的屬性。
3.3 評(píng)論模塊
用戶評(píng)論模塊的涉及的類:Comment.java、IComment.java、CommentService.java、CommentManager.java、CommentServlet.java。
各類的具體使用情況如下:
Comment.java:此類中主要包含用戶點(diǎn)擊觀看視頻后所評(píng)論的內(nèi)容。
IComment.java:此類是用戶評(píng)論的接口層,對(duì)數(shù)據(jù)庫實(shí)現(xiàn)增刪改查。
CommentService.java:此類是實(shí)現(xiàn)用戶對(duì)視頻進(jìn)行評(píng)論所需要的服務(wù)。
CommentManager.java:此類是對(duì)用戶看完視頻進(jìn)行評(píng)論所需的功能實(shí)施操作。
CommentServlet.java:此類是獲取用戶評(píng)論的信息,即得到評(píng)論的內(nèi)容。
3.4 客戶端模塊設(shè)計(jì)
視頻播放當(dāng)中主要包括最新上架、熱門推薦、上次觀看、影視中心、最新視頻等,如最新視頻中包括同步劇場、影院熱映、限時(shí)區(qū)以及最新電影四大部分,點(diǎn)擊可以找到自己想要看到的視頻,列表當(dāng)中的視頻可以進(jìn)行更新,利用適配器將基本的數(shù)據(jù)顯示到ListView,通過handler來更新主界面,選中position的圖片,然后調(diào)用OnItemSelectedListener監(jiān)聽改變圖像,如圖4及圖5所示:
涉及到的類:MyVideoActivity.java、VideoManager.java、IVideo.java、VideoService.java、Video.java。
各類的具體使用情況如下:
MyVideoActivity.java:此類實(shí)現(xiàn)視頻的播放、暫停、繼續(xù)、停止以及對(duì)播放列表進(jìn)行更新和對(duì)想要的視頻文件進(jìn)行搜索
VideoManager.Java:此類是從網(wǎng)絡(luò)端及本地得到視頻及視頻相關(guān)屬性
IVideo.java:此類是實(shí)現(xiàn)從服務(wù)器端獲得所有視頻集合
VideoService.java:此類是實(shí)現(xiàn)用戶對(duì)視頻所需要的服務(wù)
Video.java:此類中主要包含用戶點(diǎn)擊觀看的視頻所包含的的視頻具體信息
3.5 用戶評(píng)論模塊
用戶看完視頻可以發(fā)表對(duì)影片的觀后感,其中會(huì)包括用戶發(fā)表的時(shí)間日期以及具體內(nèi)容。
涉及到的類:CommentActivity.java、Comment.Manager,IComment.java,CommentService. java。
各類的具體使用情況如下:
CommentActivity.java:此類是刷新用戶評(píng)論列表內(nèi)容
CommentManager.java:此類是對(duì)用戶看完視頻進(jìn)行評(píng)論所需的功能實(shí)施操作
IComment.java:此類是用戶評(píng)論的接口層,可以通過主鍵id得到特定視頻的評(píng)價(jià)
CommentService.java:此類是實(shí)現(xiàn)用戶對(duì)視頻進(jìn)行評(píng)論所需要的服務(wù)
4 結(jié)束語
傳統(tǒng)的網(wǎng)絡(luò)視頻播放器功能單一,采用本文所述方案不僅能實(shí)現(xiàn)微課視頻的快速下載以及在線流暢播放,還可以對(duì)網(wǎng)絡(luò)微課視頻的管理和對(duì)相關(guān)教學(xué)資源的分類,輔助在線答疑、內(nèi)容庫的瀏覽和查詢等功能,基本滿足微課教學(xué)平臺(tái)的實(shí)時(shí)性、交互性需求,為開發(fā)同類的網(wǎng)絡(luò)視頻教學(xué)平臺(tái)及相關(guān)應(yīng)用提供參考。
參考文獻(xiàn):
[1] 李楊, 馮剛, 李亮, 等. 基于Android的多媒體應(yīng)用開發(fā)與研究[J]. 計(jì)算機(jī)與現(xiàn)代化, 2011(4).
[2] 郭宏志. Android應(yīng)用開發(fā)詳解[M]. 北京: 電子工業(yè)出版社, 2010: 1-67.
[3] Ed Burnette.Hello, Android: Introducing Google's Mobile DevelopmentPlatform[M]. Pragmatic Bookshelf, 2010.
[4] Robi Sen. Unlocking Android: A Developer's Guide[M]. Manning Publications, 2009.
[5] Badrinath B R,Phatak S . Database server organization for handling mobile clients[R]. Technical Report DCS-342, Rutgers University, 1997.
[6] ITU-T. ITU-T Recommendation H.264, Advanced video Coding for Generic Audiovisual Services[Z]. 2005: 5.
[7] 吳偉. 基于JSON的信息系統(tǒng)數(shù)據(jù)采集機(jī)制設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù), 2011(11).
[8] 焦文華. 基于Android的移動(dòng)互聯(lián)網(wǎng)應(yīng)用的研究和實(shí)現(xiàn)[D]. 北京: 北京郵電大學(xué), 2013.