本文實例講述了Android編程實現(xiàn)播放視頻的方法。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)秉承實現(xiàn)全網(wǎng)價值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),做網(wǎng)站、成都網(wǎng)站制作,微信平臺小程序開發(fā),網(wǎng)頁設(shè)計制作,移動網(wǎng)站建設(shè),全網(wǎng)營銷推廣幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長。
播放視頻文件其實并不比播放音頻文件復(fù)雜,主要是使用 VideoView 類來實現(xiàn)的。這個 類將視頻的顯示和控制集于一身,使得我們僅僅借助它就可以完成一個簡易的視頻播放器。 VideoView 的用法和 MediaPlayer 也比較類似,主要有以下常用方法:
方法名 | 功能描述 |
setVideoPath() | 設(shè)置要播放的視頻文件的位置。 |
start() | 開始或繼續(xù)播放視頻。 |
pause() | 暫停播放視頻。 |
resume() | 將視頻重頭開始播放。 |
seekTo() | 從指定的位置開始播放視頻。 |
isPlaying() | 判斷當(dāng)前是否正在播放視頻。 |
getDuration() | 獲取載入的視頻文件的時長。 |
那么我們還是通過一個實際的例子來學(xué)習(xí)一下吧,新建 PlayVideoTest 項目,然后修改activity_main.xml 中的代碼,如下所示:
在這個布局文件中,首先是放置了一個 VideoView,稍后的視頻就將在這里顯示。然后在 VideoView 的下面又放置了三個按鈕,分別用于控制視頻的播放、暫停和重新播放。 接下來修改 MainActivity 中的代碼,如下所示:
public class MainActivity extends Activity implements OnClickListener { private VideoView videoView; private Button play; private Button pause; private Button replay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); replay = (Button) findViewById(R.id.replay); videoView = (VideoView) findViewById(R.id.video_view); play.setOnClickListener(this); pause.setOnClickListener(this); replay.setOnClickListener(this); initVideoPath(); } private void initVideoPath() { File file = new File(Environment.getExternalStorageDirectory(), "movie.3gp"); videoView.setVideoPath(file.getPath()); // 指定視頻文件的路徑 } @Override public void onClick(View v) { switch (v.getId()) { case R.id.play: if (!videoView.isPlaying()) { videoView.start(); // 開始播放 } break; case R.id.pause: if (videoView.isPlaying()) { videoView.pause(); // 暫時播放 } break; case R.id.replay: if (videoView.isPlaying()) { videoView.resume(); // 重新播放 } break; } } @Override protected void onDestroy() { super.onDestroy(); if (videoView != null) { videoView.suspend(); } } }
這部分代碼相信你理解起來會很輕松,因為它和前面播放音頻的代碼非常類似。首先在 onCreate()
方法中仍然是去獲取一些控件的實例,然后調(diào)用了 initVideoPath()
方法來設(shè)置視頻 文件的路徑,這里我們需要事先在 SD 卡的根目錄下放置一個名為 movie.3gp 的視頻文件。 下面看一下各個按鈕的點擊事件中的代碼。當(dāng)點擊 Play 按鈕時會進(jìn)行判斷,如果當(dāng)前 并沒有正在播放音頻,則調(diào)用 start()
方法開始播放。當(dāng)點擊 Pause 按鈕時會判斷,如果當(dāng)前 視頻正在播放,則調(diào)用 pause()
方法暫時播放。當(dāng)點擊 Replay 按鈕時會判斷,如果當(dāng)前視頻正在播放,則調(diào)用 resume()
方法重頭播放視頻。最后在 onDestroy()
方法中,我們還需要調(diào)用一下 suspend()
方法,將 VideoView 所占用的 資源釋放掉。
現(xiàn)在將程序運行到手機(jī)上,然后點擊一下 Play 按鈕,就可以看到視頻已經(jīng)開始播放了, 如下圖所示:
點擊 Pause 按鈕可以暫停視頻的播放,點擊 Replay 按鈕可以重頭播放視頻。 這樣的話,你就已經(jīng)將 VideoView 的基本用法掌握得差不多了。不過,為什么它的用法
和 MediaPlayer 這么相似呢?其實 VideoView 只是幫我們做了一個很好的封裝而已,它的背 后仍然是使用 MediaPlayer 來對視頻文件進(jìn)行控制的。另外需要注意,VideoView 并不是一 個萬能的視頻播放工具類,它在視頻格式的支持以及播放效率方面都存在著較大的不足。所 以,如果想要僅僅使用 VideoView 就編寫出一個功能非常強(qiáng)大的視頻播放器是不太現(xiàn)實的。 但是如果只是用于播放一些游戲的片頭動畫,或者某個應(yīng)用的視頻宣傳,使用 VideoView 還 是綽綽有余的。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android開發(fā)入門與進(jìn)階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android數(shù)據(jù)庫操作技巧總結(jié)》、《Android文件操作技巧匯總》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。