Android 播放視頻示例 android
因爲Android平臺由Google本身封裝、設計、提供的Java Dalvik 在算法處理效率上沒法與C/C++ 或 ARM ASM 相提並論,在描述或移植一些本地語言的解碼器上顯得無能爲力,目前整個平臺僅支持MP4 的 H.26四、3GP 和 WMV 視頻解析。
Android內置的 VideoView類能夠快速製做一個系統播放器,VideoView主要用來顯示一個視頻文件,咱們先開看看VideoView類的一些基本方法。
方法 說明
getBufferPercentage 獲得緩衝的百分比
getCurrentPosition 獲得當前播放的位置
getDuration 獲得視頻文件的時間
isPlaying 是否正在播放
pause 暫停
resolveAdjustedSize 調整視頻顯示大小
seekTo 指定播放位置
setMediaController 設置播放控制器模式(播放進度條)
setOnCompletionListener 當媒體文件播放完時觸發事件
setOnErrorListener 錯誤監聽
setVideoPath 設置視頻源路徑
setVideoURI 設置視頻源地址
start 開始播放
下面是一個小例子 首先在佈局文件中建立VideoView佈局,而且建立幾個按鈕(Button) 來實現對視頻的操做,當咱們點擊「裝載」 按鈕時,將指定視頻文件的路徑,以下代碼所示:
Java代碼 算法
? app
代碼片斷,雙擊複製 ide |
|
01 佈局 02 測試 03 this 04 spa 05 設計 |
/*設置路徑*/ 視頻 videoView.setVideoPath("/sdcard/test.mp4"); /*設置模式-播放進度條*/ videoView.setMediaController(new MediaController(Activity01.this)); videoView.requestFocus(); |
裝載以後即可以經過start、pause 方法來播放和暫停,具體代碼以下
Activity01
Java代碼
代碼片斷,雙擊複製 |
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
package com.yarin.android.Examples_07_03; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.MediaController; import android.widget.VideoView; public class Activity01 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* 建立VideoView對象 */ final VideoView videoView = (VideoView) findViewById(R.id.VideoView01); /* 操做播放的三個按鈕 */ Button PauseButton = (Button) this.findViewById(R.id.PauseButton); Button LoadButton = (Button) this.findViewById(R.id.LoadButton); Button PlayButton = (Button) this.findViewById(R.id.PlayButton); /* 裝載按鈕事件 */ LoadButton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { /* 設置路徑 */ videoView.setVideoPath("/sdcard/test.mp4"); /* 設置模式-播放進度條 */ videoView.setMediaController(new MediaController( Activity01.this)); videoView.requestFocus(); } }); /* 播放按鈕事件 */ PlayButton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { /* 開始播放 */ videoView.start(); } }); /* 暫停按鈕 */ PauseButton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { /* 暫停 */ videoView.pause(); } }); } } |
main.xml
Xml代碼
代碼片斷,雙擊複製 |
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <VideoView android:id="@+id/VideoView01" android:layout_width="320px" android:layout_height="240px" /> <Button android:id="@+id/LoadButton" android:layout_width="80px" android:layout_height="wrap_content" android:text="裝載" android:layout_x="30px" android:layout_y="300px" /> <Button android:id="@+id/PlayButton" android:layout_width="80px" android:layout_height="wrap_content" android:text="播放" android:layout_x="120px" android:layout_y="300px" /> <Button android:id="@+id/PauseButton" android:layout_width="80px" android:layout_height="wrap_content" android:text="暫停" android:layout_x="210px" android:layout_y="300px" /> </AbsoluteLayout> |
源碼附件,若是你們要測試須要本身下載一個.mp4文件放入SD卡