Video本地和流媒体播放
MediaPlayer mp = new MediaPlayer();
public void playVideo() {
mp.setDataSource(Video_PATH);
mp.setDisplay(surfaceholder);
mp.prepare();
mp.setOnpreparedListerner(this);
}
public void onPrepared(MediaPlayer mediaplayer) {
mp.start();
}
public void playVideo() {
mp.setDataSource(Video_PATH);
mp.setDisplay(surfaceholder);
mp.prepare();
mp.setOnpreparedListerner(this);
}
public void onPrepared(MediaPlayer mediaplayer) {
mp.start();
}
如上代码所示,由于Android良好的接口设计,Video播放也非常简单,仅仅比Audio播放多增加setDisplay()一个调用,其他的处理方式与播放Audio一致。
1. 新建一个MediaPlayer 实例
2.调用setDataSource()方法设置播放文件的路径,该路径既可以是本地文件如/sdcard/test.mp4,也可以是网络流媒体数据如 http://www.monternet.com/test/test.mp4
3.调用setDisplay()方法,设置surfaceholder。surfaceholder 用来获取用户定义的surfaceview, 这个surfaceview就是用来显示Video的区域。可以通过如下方法获取surfaceholder
SurfaceView mPreview = (SurfaceView) findViewById(R.id.surface);
SurfaceHolder surfaceholder = mPreview.getHolder()
SurfaceHolder surfaceholder = mPreview.getHolder()
4.调用prepare()方法,使底层openCore初始化数据。同时监听当前Video数据是否准备好播放。Video相对于Audio 需要更长的准备时间。
5.一旦prepare()完成,便可以调用start()方法开始播放,
如果想暂停播放,可以调用pause()方法,如果想停止播放,可以调用stop()方法。
参考图2了解Audio/Video播放在android系统中的实际调用过程。
