MediaPlayer类的使用

参考:
http://www.nnllok.cn/News/332.shtml

http://www.w2bc.com/Article/80927

http://bbs.csdn.net/topics/330207621


Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频 。该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码和播放音视频。


1)获得MediaPlayer实例:
可以直接new或者调用create方法创建:
MediaPlayer mp = new MediaPlayer();
MediaPlayer mp = MediaPlayer.create(this, R.raw.test); //无需再调用setDataSource
另外create还有这样的形式:
create(Context context, Uri uri, SurfaceHolder holder)
通过Uri和指定 SurfaceHolder 【抽象类】 创建一个多媒体播放器
2)设置播放文件:
//①raw下的资源:
MediaPlayer.create(this, R.raw.test);
//②本地文件路径:
mp.setDataSource("/sdcard/test.mp3");
//③网络URL文件:
mp.setDataSource("http://www.xxx.com/music/test.mp3");
setDataSource()方法有多个,里面有这样一个类型的参数:FileDescriptor,在使用这个API的时候,需要把文件放到res文件夹平级的assets文件夹里,然后使用下述代码设置DataSource:
AssetFileDescriptor fileDescriptor getAssets().openFd("rain.mp3");
mp.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());
3)其他方法
getCurrentPosition( ):得到当前的播放位置
getDuration() :得到文件的时间
getVideoHeight() :得到视频高度
getVideoWidth() :得到视频宽度
isLooping():是否循环播放
isPlaying():是否正在播放
pause():暂停
prepare():准备(同步)
prepareAsync():准备(异步)
release():释放MediaPlayer对象
reset():重置MediaPlayer对象
seekTo(int msec):指定播放的位置(以毫秒为单位的时间)
setAudioStreamType(int streamtype):指定流媒体的类型
setDisplay(SurfaceHolder sh):设置用SurfaceHolder来显示多媒体
setLooping(boolean looping):设置是否循环播放
setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener):
网络流媒体的缓冲监听
setOnCompletionListener(MediaPlayer.OnCompletionListener listener):
网络流媒体播放结束监听
setOnErrorListener(MediaPlayer.OnErrorListener listener):
设置错误信息监听
setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener listener):
视频尺寸监听
setScreenOnWhilePlaying(boolean screenOn):设置是否使用SurfaceHolder显示
setVolume(float leftVolume, float rightVolume):设置音量
start():开始播放
stop():停止播放


使用MediaPlayer时要注意添加权限:

模拟器中sdcard中创建文件夹的权限

允许挂载和反挂载文件系统可移动存储

你可能感兴趣的:(Android)