999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的自定義媒體播放控件設(shè)計(jì)與實(shí)現(xiàn)

2016-05-14 21:05:59張香倩黃林生陳陽(yáng)德
軟件導(dǎo)刊 2016年5期

張香倩 黃林生 陳陽(yáng)德

摘要:針對(duì)日益增加的個(gè)性化應(yīng)用需求,提出了基于Android的自定義媒體播放控件。該控件通過(guò)繼承VideoView實(shí)現(xiàn)視頻、圖片媒體的播放,與網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)進(jìn)行結(jié)合可以下載媒體資源與管理資源。控件中定義了下載回調(diào),即實(shí)時(shí)顯示當(dāng)前的、下載進(jìn)度,因而有助于提升用戶(hù)體驗(yàn)。

關(guān)鍵詞:Android;自定義控件;媒體播放;VideoView

DOIDOI:10.11907/rjdk.161461

中圖分類(lèi)號(hào):TP319

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2016)005-0079-03

0 引言

在Android系統(tǒng)中,提供了很多控件用于Android應(yīng)用的開(kāi)發(fā),其控件的豐富性能可滿(mǎn)足基本的應(yīng)用開(kāi)發(fā)需求。但是隨著定制應(yīng)用的日益增加,基本的控件已很難滿(mǎn)足需求,從另一方面而言,這也約束了個(gè)性化應(yīng)用的發(fā)展。Google提供的自定義控件方法可以達(dá)到應(yīng)用開(kāi)發(fā)的個(gè)性化要求[1]。在Android程序中,視頻媒體播放使用VideoView控件實(shí)現(xiàn),或者使用MediaPlayer與SurfaceView結(jié)合實(shí)現(xiàn)媒體播放功能。對(duì)于圖片的顯示則使用ImageView來(lái)實(shí)現(xiàn)[2]。日常生活中,視頻和圖片都是大眾最常見(jiàn)的媒體,在一個(gè)界面上要既能顯示圖片又能顯示視頻,所以,本文提出了一種繼承VideoView的自定義媒體播放控件,該控件不僅可以顯示圖片,還可以播放視頻,并且在下載視頻的過(guò)程中可以顯示下載進(jìn)度。同時(shí),自定義媒體播放控件和數(shù)據(jù)庫(kù)結(jié)合,能夠?qū)崿F(xiàn)媒體文件的自動(dòng)循環(huán)播放。

1 Android系統(tǒng)

Android系統(tǒng)由Google公司2007年在Google I/O開(kāi)發(fā)者大會(huì)上發(fā)布的移動(dòng)操作系統(tǒng), Google將其源碼開(kāi)放以供廣大開(kāi)發(fā)者研究。Android系統(tǒng)采用分層架構(gòu),具體分為Applications、Application Framework、Libraries(包含Android Runtime)、Linux Kernel四層。Android應(yīng)用開(kāi)發(fā)者最常接觸的是前兩層,后兩層主要用于底層庫(kù)和硬件驅(qū)動(dòng)等[3-5]。

2 View及其自定義媒體控件相關(guān)類(lèi)

2.1 View類(lèi)介紹

在Android系統(tǒng)的Application Framework層,提供了豐富的UI控件,所有UI控件都是直接或間接繼承View類(lèi)。View類(lèi)是所有UI控件的基類(lèi),該類(lèi)表示了用戶(hù)界面的基本構(gòu)建模塊——一個(gè)View占用屏幕的矩形區(qū)域并且負(fù)責(zé)界面繪制和事件處理[6-7]。

View類(lèi)中有很多方法,這些方法都與其界面繪制和事件處理相關(guān),下面簡(jiǎn)單介紹幾個(gè)方法:

①onMeasure(int,int):該方法用于獲取控件的寬、高,由系統(tǒng)的measure方法調(diào)用;

②onDraw(Canvas):該方法用于繪制需要在View中顯示的內(nèi)容,由系統(tǒng)的draw函數(shù)調(diào)用;

③onLayout(boolean,int,int,int,int):該方法用于指定View的位置,由系統(tǒng)的layout函數(shù)調(diào)用;

④onSizeChanged(int,int,int,int):該方法用于當(dāng)View大小改變時(shí)進(jìn)行調(diào)用。

2.2 自定義媒體控件相關(guān)類(lèi)

(1)VideoView類(lèi)[8-9]。

本文中自定義媒體播放控件的實(shí)現(xiàn)采用繼承VideoView類(lèi)。VideoView類(lèi)在包android.widget中,其繼承自android.widget.SurfaceView類(lèi)。VideoView有幾個(gè)重要的方法,如setVideoPath()、setBackground()、start()、seekTo()、getCurrentPosition()等。setVideoPath方法可以設(shè)置視頻路徑,setBackground方法可以設(shè)置背景,start方法可以開(kāi)始播放。

(2)Drawable類(lèi)。

Drawable類(lèi)是一個(gè)抽象類(lèi),用于在屏幕上繪制圖片,即可以顯示圖片,但沒(méi)有事件處理能力。子類(lèi)主要復(fù)寫(xiě)其onDraw方法,然后在里面繪制需要呈現(xiàn)的圖片。

(3)SurfaceView類(lèi)[10-11]。

SurfaceView在包android.view中,它是一種特殊的視圖,擁有獨(dú)立的繪圖界面,繪圖可以在一個(gè)獨(dú)立的線程中進(jìn)行。SurfaceView可以實(shí)現(xiàn)復(fù)雜而高效的UI且不會(huì)導(dǎo)致用戶(hù)輸入響應(yīng)不及時(shí)。

3 自定義媒體播放控件實(shí)現(xiàn)

3.1 概述

自定義媒體播放控件實(shí)現(xiàn)的功能包括:播放視頻、播放圖片、下載視頻、下載圖片等。Android為開(kāi)發(fā)者提供了很多的API,其中就有實(shí)現(xiàn)媒體播放的類(lèi),如VideoView。本實(shí)現(xiàn)通過(guò)繼承VideoView實(shí)現(xiàn)播放功能,在其子類(lèi)中能夠獲取到媒體文件的播放狀態(tài)、當(dāng)前播放位置等。其次,自定義繼承自Drawable類(lèi)的內(nèi)部類(lèi)BackgroundDrawable用于顯示大圖。

3.2 邏輯設(shè)計(jì)及實(shí)現(xiàn)

要實(shí)現(xiàn)5個(gè)方面的功能:①用于獲取數(shù)據(jù)的數(shù)據(jù)庫(kù)操作類(lèi)及數(shù)據(jù)類(lèi);②繼承VideoView類(lèi)的子類(lèi)VideoPlayer;③用于實(shí)現(xiàn)大圖縮放處理的BackgroundDrawable類(lèi);④用于實(shí)現(xiàn)播放流程控制的PlayControl類(lèi);⑤用于下載視頻、圖片的類(lèi)WgetDownload。下面分別介紹其邏輯設(shè)計(jì)。

(1)數(shù)據(jù)庫(kù)操作類(lèi)及數(shù)據(jù)類(lèi)。

數(shù)據(jù)庫(kù)操作類(lèi)需要實(shí)現(xiàn)數(shù)據(jù)庫(kù)的基本功能,如查找、刪除、增加等。在本實(shí)現(xiàn)中采用OrmLite框架,構(gòu)建數(shù)據(jù)庫(kù)操作類(lèi)VideoRecord與ImageRecord,用于操作數(shù)據(jù)VideoTable、ImageTable,提供給外部操作數(shù)據(jù)庫(kù)的方法。其中VideoRecord、ImageRecord通過(guò)MediaDBHelper獲取。此外,在MediaDBHelper中實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)表、更新數(shù)據(jù)表功能。

如圖1所示,當(dāng)程序啟動(dòng)時(shí),初始化單例類(lèi)MediaDBHelper類(lèi),該類(lèi)用于創(chuàng)建表和提供獲取VideoRecord及ImageRecord的方法,代碼如下:

(2)VideoPlayer類(lèi)。

VideoPlayer類(lèi)主要用于播放視頻、圖片,同時(shí)實(shí)現(xiàn)下載回調(diào)接口WgetCallback,實(shí)現(xiàn)播放順序控制PlayControl類(lèi)的復(fù)寫(xiě)。在下載回調(diào)中,可以由函數(shù)ready、process、finished顯示下載進(jìn)度。其內(nèi)部邏輯如圖2所示。

4 結(jié)語(yǔ)

本文在介紹VideoView的基礎(chǔ)上,提出了繼承VideoView實(shí)現(xiàn)自定義媒體播放控件的類(lèi)VideoPlayer。介紹了在該類(lèi)中使用的其它輔助類(lèi),如數(shù)據(jù)庫(kù)操作類(lèi)用于加載數(shù)據(jù)等,類(lèi)BackgroundDrawable用于有效顯示大圖,類(lèi)PlayControl用于控制播放順序,類(lèi)WgetDownload用于下載媒體文件。在這些類(lèi)的輔助下,VideoPlayer控件實(shí)現(xiàn)設(shè)計(jì)的功能,將該控件布局在XML文件中即可。其中數(shù)據(jù)類(lèi)可以自定義其屬性,根據(jù)需求將該控件布置在Android程序中,進(jìn)而與服務(wù)器結(jié)合實(shí)現(xiàn)媒體文件的遠(yuǎn)端管理。

參考文獻(xiàn):

[1]馬建敏.基于Android的蒙文基本控件的設(shè)計(jì)與實(shí)現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué),2014.

[2]王建功.基于Android的自定義控件設(shè)計(jì)[J].德州學(xué)院學(xué)報(bào),2015,31(2):62-65.

[3]關(guān)晶鑫,李永全.Android中的多媒體技術(shù)應(yīng)用開(kāi)發(fā)與研究[J].桂林理工大學(xué)學(xué)報(bào),2013,33(3):542-546.

[4]李楊,馮剛,李亮,等.基于Android的多媒體應(yīng)用開(kāi)發(fā)與研究[J].華南師范大學(xué)學(xué)報(bào),2011(4):149-152.

[5]葉曉靜,黃俊偉.基于Android系統(tǒng)的多媒體播放器解決方案[J].現(xiàn)代電子技術(shù),2011,34(24):73-76.

[6]趙曉影.Android應(yīng)用開(kāi)發(fā)中的UI設(shè)計(jì)[J].勞動(dòng)保障世界,2013(5):111-113.

[7]趙亮,張維.基于Android技術(shù)的界面設(shè)計(jì)與研究[J].電腦知識(shí)與技術(shù),2009(29):8183-8185.

[8]李哲夫,張煥明.基于Android的校園流媒體播放系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2013(10):67-71.

[9]汪永松.Android平臺(tái)開(kāi)發(fā)媒體盒子[J].電腦編程技巧與維護(hù),2010(19):62-68.

[10]張小菲.Android平臺(tái)上音視頻系統(tǒng)的研究及播放器開(kāi)發(fā)[D].西安:西安電子科技大學(xué),2012.

[11]李光革,苗建松.基于Android的物聯(lián)網(wǎng)環(huán)境監(jiān)控應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)[J].軟件,2013,34(9):32-35.

(責(zé)任編輯:杜能鋼)

主站蜘蛛池模板: 青青操国产视频| 伊人精品视频免费在线| 亚洲天堂色色人体| 2021精品国产自在现线看| 青青青国产精品国产精品美女| 午夜高清国产拍精品| 欧美日韩精品综合在线一区| 久久精品中文字幕少妇| 亚洲天堂区| 性色在线视频精品| 亚洲综合色吧| 五月婷婷中文字幕| 亚洲国产欧美国产综合久久 | 亚洲综合二区| 日韩一区二区三免费高清| 色妞www精品视频一级下载| 国产剧情一区二区| 欧美精品xx| 欧美一级在线播放| 国产精品福利尤物youwu| 91色爱欧美精品www| 久草国产在线观看| 日韩欧美综合在线制服| 99精品福利视频| 伦精品一区二区三区视频| 国产理论精品| 亚洲美女操| 国产自产视频一区二区三区| 91小视频在线| 国产九九精品视频| 亚洲第一在线播放| 青草免费在线观看| 在线网站18禁| 亚洲伦理一区二区| 午夜国产大片免费观看| 国产在线自揄拍揄视频网站| 亚洲三级电影在线播放| 欧美一区二区丝袜高跟鞋| 2021最新国产精品网站| av免费在线观看美女叉开腿| 国产成人超碰无码| 亚洲av片在线免费观看| 欧美亚洲欧美区| 日韩欧美中文字幕在线精品| 欧美国产精品不卡在线观看| 日韩黄色大片免费看| 超清无码一区二区三区| 成年人久久黄色网站| 高清无码手机在线观看| 丁香亚洲综合五月天婷婷| 中文字幕永久在线看| 国产成人啪视频一区二区三区| 伊人中文网| 欧美国产菊爆免费观看| 国产杨幂丝袜av在线播放| 国产亚洲精品自在久久不卡 | 日韩小视频网站hq| 国产午夜福利亚洲第一| 亚洲最大看欧美片网站地址| 欧美有码在线观看| 一本大道AV人久久综合| 欧美午夜在线播放| 国产毛片高清一级国语 | 亚洲天堂啪啪| 精品亚洲欧美中文字幕在线看| 亚洲一区精品视频在线| 69综合网| 伊人福利视频| 国产欧美日韩精品综合在线| 女同国产精品一区二区| 日韩精品亚洲一区中文字幕| 18禁高潮出水呻吟娇喘蜜芽| 免费高清a毛片| 日韩最新中文字幕| 国产在线一区二区视频| 国产精品浪潮Av| 99色亚洲国产精品11p| 精品一区二区三区四区五区| 亚洲无线视频| 欧美日韩第三页| 内射人妻无套中出无码| 性欧美在线|