使用MediaPlayer播放音频或者视频的最简单例子:

JAVA代码部分:

 

public class MediaPlayerStudy extends Activity {    private Button bplay,bpause,bstop;    private MediaPlayer mp = new MediaPlayer();        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                bplay = (Button)findViewById(R.id.play);        bpause = (Button)findViewById(R.id.pause);        bstop = (Button)findViewById(R.id.stop);        bplay.setOnClickListener(new OnClickListener(){           @Override           public void onClick(View v) {                  try {                     mp.setDataSource("/sdcard/test.mp3");                     mp.prepare();                     mp.start();                  } catch (IllegalArgumentException e) {                     e.printStackTrace();                  } catch (IllegalStateException e) {                     e.printStackTrace();                  } catch (IOException e) {                     e.printStackTrace();                  }                  mp.setOnCompletionListener(new OnCompletionListener(){                     @Override                     public void onCompletion(MediaPlayer mp) {                         mp.release();                     }                  });           }        });                bpause.setOnClickListener(new OnClickListener(){           @Override           public void onClick(View v) {                  if(mp != null){                     mp.pause();                  }           }        });             bstop.setOnClickListener(new OnClickListener(){        @Override        public void onClick(View v) {             if(mp != null){                mp.stop();             }        }        });    }     @Override    protected void onDestroy() {       if(mp != null)           mp.release();       super.onDestroy();    }}


 

布局文件main.xml

 

<?xml version="1.0" encoding="utf-8"?>


 

程序说明:

这个例子只是描述了MediaPlayer的基本使用步骤和方式,MediaPlayer还有多种使用方式和方法,并不只局限于例子所介绍的一种。具体来看

1)如何获得MediaPlayer实例:

可以使用直接new的方式:

MediaPlayer mp = new MediaPlayer();

也可以使用create的方式,如:

MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource

2) 如何设置要播放的文件:

MediaPlayer要播放的文件主要包括3个来源:

a. 用户在应用中事先自带的resource资源

例如:MediaPlayer.create(this, R.raw.test);

b. 存储在SD卡或其他文件路径下的媒体文件

例如:mp.setDataSource("/sdcard/test.mp3");

c. 网络上的媒体文件

例如:mp.setDataSource("http://www.citynorth.cn/music/confucius.mp3");

MediaPlayersetDataSource一共四个方法:

setDataSource (String path)

setDataSource (FileDescriptor fd)

setDataSource (Context context, Uri uri)

setDataSource (FileDescriptor fd, long offset, long length)

3)对播放器的主要控制方法:

Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:

prepare()prepareAsync()提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。

start()是真正启动文件播放的方法,

pause()stop()比较简单,起到暂停和停止播放的作用,

seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。

release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。

reset()可以使播放器从Error状态中恢复过来,重新会到Idle状态。

4)设置播放器的监听器:

MediaPlayer提供了一些设置不同监听器的方法来更好地对播放器的工作状态进行监听,以期及时处理各种情况,

如: setOnCompletionListener(MediaPlayer.OnCompletionListener listener)

setOnErrorListener(MediaPlayer.OnErrorListener listener),设置播放器时需要考虑到播放器可能出现的情况设置好监听和处理逻辑,以保持播放器的健壮性。

 

文章出自: http://blog.csdn.net/ddna/article/details/5176233

更多相关文章

  1. android的ndk修改app_platform的方法,亲测绝对可行
  2. H5调android 的方法修改UI无效
  3. Android编译系统详解 配置文件
  4. Android 数据存储(数据库、文件、参数)操作实例
  5. Android程序——退出程序的时候杀死所有进程的一个方法
  6. Android中手机文件储存路径
  7. android http协议post请求方式
  8. android 串口通信,蓝牙通信等需要输出十六进制数据的方法
  9. Android 下保持屏幕常亮的实现方法

随机推荐

  1. Android原生Switch控件滑块thumb卡住问题
  2. 记录一次九月份腾讯 Android 面试笔试总
  3. ANDROID抽屉式左右侧滑菜单DEMO源代码下
  4. Android开发实践:基于命令模式的异步任务
  5. 浅析Context及可能带来的内存泄漏问题
  6. Android 事件处理(—)(附源码)
  7. iPhone和Android智能手机浏览器判断分辨
  8. android 开关按钮
  9. 基于移动平台的多媒体框架——移植ffmpeg
  10. Android中抓取手机视频流数据。