Android 播放视频示例

来源:互联网 发布:联合缴费软件下载 编辑:程序博客网 时间:2024/05/17 04:40

【分享】Android 播放视频示例

 

  由于Android平台由Google自己封装、设计、提供的Java Dalvik 在算法处理效率上无法与C/C++ 或 ARM ASM 相提并论,在描述或移植一些本地语言的解码器上显得无能为力,目前整个平台仅支持MP4 的 H.264、3GP 和 WMV 视频解析。

  Android内置的 VideoView类可以快速制作一个系统播放器,VideoView主要用来显示一个视频文件,我们先开看看VideoView类的一些基本方法。

  方法                                               说明
  getBufferPercentage                               得到缓冲的百分比
  getCurrentPosition                                得到当前播放的位置
  getDuration                                       得到视频文件的时间
  isPlaying                                         是否正在播放
  pause                                             暂停
  resolveAdjustedSize                               调整视频显示大小
  seekTo                                            指定播放位置
  setMediaController                                设置播放控制器模式(播放进度条)
  setOnCompletionListener                           当媒体文件播放完时触发事件
  setOnErrorListener                                错误监听
  setVideoPath                                      设置视频源路径
  setVideoURI                                       设置视频源地址
  start                                             开始播放
  下面是一个小例子 首先在布局文件中创建VideoView布局,并且创建几个按钮(Button) 来实现对视频的操作,当我们点击“装载” 按钮时,将指定视频文件的路径,如下代码所示:
  Java代码

?

代码片段,双击复制

01

02

03

04

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卡

原创粉丝点击