最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android編程實現(xiàn)播放視頻的方法示例

 更新時間:2017年08月01日 12:17:55   作者:dodo-yufan  
這篇文章主要介紹了Android編程實現(xiàn)播放視頻的方法,結合具體實例形式分析了Android使用VideoView類播放視頻的相關操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了Android編程實現(xiàn)播放視頻的方法。分享給大家供大家參考,具體如下:

播放視頻文件其實并不比播放音頻文件復雜,主要是使用 VideoView 類來實現(xiàn)的。這個 類將視頻的顯示和控制集于一身,使得我們僅僅借助它就可以完成一個簡易的視頻播放器。 VideoView 的用法和 MediaPlayer 也比較類似,主要有以下常用方法:

方法名

功能描述

setVideoPath()

設置要播放的視頻文件的位置。

start()

開始或繼續(xù)播放視頻。

pause()

暫停播放視頻。

resume()

將視頻重頭開始播放。

seekTo()

從指定的位置開始播放視頻。

isPlaying()

判斷當前是否正在播放視頻。

getDuration()

獲取載入的視頻文件的時長。

那么我們還是通過一個實際的例子來學習一下吧,新建 PlayVideoTest 項目,然后修改activity_main.xml 中的代碼,如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical" >
<VideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="wrap_content" />
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" >
<Button android:id="@+id/play" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Play" />
<Button android:id="@+id/pause" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Pause" />
<Button android:id="@+id/replay" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Replay" />
</LinearLayout>
</LinearLayout>

在這個布局文件中,首先是放置了一個 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()方法來設置視頻 文件的路徑,這里我們需要事先在 SD 卡的根目錄下放置一個名為 movie.3gp 的視頻文件。 下面看一下各個按鈕的點擊事件中的代碼。當點擊 Play 按鈕時會進行判斷,如果當前 并沒有正在播放音頻,則調(diào)用 start()方法開始播放。當點擊 Pause 按鈕時會判斷,如果當前 視頻正在播放,則調(diào)用 pause()方法暫時播放。當點擊 Replay 按鈕時會判斷,如果當前視頻正在播放,則調(diào)用 resume()方法重頭播放視頻。最后在 onDestroy()方法中,我們還需要調(diào)用一下 suspend()方法,將 VideoView 所占用的 資源釋放掉。

現(xiàn)在將程序運行到手機上,然后點擊一下 Play 按鈕,就可以看到視頻已經(jīng)開始播放了, 如下圖所示:

點擊 Pause 按鈕可以暫停視頻的播放,點擊 Replay 按鈕可以重頭播放視頻。 這樣的話,你就已經(jīng)將 VideoView 的基本用法掌握得差不多了。不過,為什么它的用法

和 MediaPlayer 這么相似呢?其實 VideoView 只是幫我們做了一個很好的封裝而已,它的背 后仍然是使用 MediaPlayer 來對視頻文件進行控制的。另外需要注意,VideoView 并不是一 個萬能的視頻播放工具類,它在視頻格式的支持以及播放效率方面都存在著較大的不足。所 以,如果想要僅僅使用 VideoView 就編寫出一個功能非常強大的視頻播放器是不太現(xiàn)實的。 但是如果只是用于播放一些游戲的片頭動畫,或者某個應用的視頻宣傳,使用 VideoView 還 是綽綽有余的。

更多關于Android相關內(nèi)容感興趣的讀者可查看本站專題:《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android開發(fā)入門與進階教程》、《Android視圖View技巧總結》、《Android編程之a(chǎn)ctivity操作技巧總結》、《Android數(shù)據(jù)庫操作技巧總結》、《Android文件操作技巧匯總》、《Android資源操作技巧匯總》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

相關文章

  • Android usb設備權限查詢及自動獲取詳解流程

    Android usb設備權限查詢及自動獲取詳解流程

    本篇文章介紹了我想要獲取Android系統(tǒng)usb設備使用權限時遇到的問題,以及解決該問題的過程及思路,通讀本篇對大家的學習或工作具有一定的價值,需要的朋友可以參考下
    2021-10-10
  • Kotlin中空判斷處理操作實例

    Kotlin中空判斷處理操作實例

    最近使用kotlin重構項目,遇到了一個小問題,在Java中,可能會遇到判斷某個對象是否為空,為空執(zhí)行一段邏輯,不為空執(zhí)行另外一段邏輯,下面這篇文章主要給大家介紹了關于Kotlin中空判斷處理操作的相關資料,需要的朋友可以參考下
    2022-07-07
  • android自定義WaveView水波紋控件

    android自定義WaveView水波紋控件

    這篇文章主要為大家詳細介紹了android自定義WaveView水波紋控件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android使用Service實現(xiàn)IPC通信的2種方式

    Android使用Service實現(xiàn)IPC通信的2種方式

    這篇文章主要介紹了Android使用Service實現(xiàn)IPC通信的2種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Android編程實現(xiàn)的身份證、車牌號正則驗證工具類實例

    Android編程實現(xiàn)的身份證、車牌號正則驗證工具類實例

    這篇文章主要介紹了Android編程實現(xiàn)的身份證、車牌號正則驗證工具類,結合實例形式分析了java針對身份證、車牌號數(shù)字字符串正則驗證操作技巧,需要的朋友可以參考下
    2017-12-12
  • Android5.0新特性詳解之全新的動畫

    Android5.0新特性詳解之全新的動畫

    這篇文章主要介紹了Android5.0新特性詳解之全新的動畫的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • Flutter軟鍵盤的原理淺析

    Flutter軟鍵盤的原理淺析

    大家應該都知道目前Flutter官方是沒有自定義鍵盤的解決方案,下面這篇文章主要給大家介紹了關于Flutter軟鍵盤原理的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-10-10
  • Android實現(xiàn)底部對話框BottomDialog彈出實例代碼

    Android實現(xiàn)底部對話框BottomDialog彈出實例代碼

    本篇文章主要介紹了Android實現(xiàn)底部對話框BottomDialog代碼。這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2017-03-03
  • Android中使用七牛云存儲進行圖片上傳下載的實例代碼

    Android中使用七牛云存儲進行圖片上傳下載的實例代碼

    這篇文章主要介紹了Android中使用七牛云存儲進行圖片上傳下載的實例代碼的相關資料,需要的朋友可以參考下
    2016-08-08
  • Android中ImageView無法居中的問題解決方法

    Android中ImageView無法居中的問題解決方法

    做UI布局,尤其是遇到比較復雜的多重LinearLayout嵌套,常常會被一些比較小的問題困擾上半天,比如今天在使用ImageView的時候,想讓其居中顯示,可是無論怎樣設置layout_gravity屬性,都無法達到效果
    2013-06-06

最新評論

安多县| 甘洛县| 温泉县| 精河县| 万盛区| 青田县| 墨脱县| 桐乡市| 灵台县| 桃源县| 德化县| 南充市| 同心县| 正安县| 米脂县| 韶关市| 金堂县| 思茅市| 滕州市| 罗江县| 汉沽区| 安阳市| 盐津县| 井陉县| 法库县| 庆安县| 辽宁省| 太原市| 淮阳县| 定日县| 静乐县| 宣化县| 顺平县| 安宁市| 平谷区| 甘肃省| 绥宁县| 北流市| 安岳县| 平阴县| 双城市|