01.Android之多媒体--使用MediaPlayer播放音频01
MediaPlayer类

静态构造方法
|
方法名称 |
描述 |
|
public static MediaPlayer create(Context context, Uri uri, SurfaceHolder holder) |
指定从资源ID对应的资源文件中来装载音乐文件,同时指定了SurfaceHolder对象并返回MediaPlyaer对象 |
|
public static MediaPlayer create(Context context, int resid) |
指定从资源ID对应的资源文件中来装载音乐文件,并返回MediaPlyaer对象 |
|
public static MediaPlayer create(Context context, Uri uri) |
指定从Uri对应的资源文件中来装载音乐文件,并返回MediaPlyaer对象 |
常用方法
|
方法名称 |
描述 |
|
public void start () |
开始或恢复播放 |
|
public void stop() |
停止播放 |
|
public void pause() |
暂停播放 |
|
public void setDataSource (String path) |
从指定的装载path路径所代表的文件 |
|
public void setDataSource (FileDescriptor fd, long offset, long length) |
指定装载fd所代表的文件中从offset开始、长度为length的文件内容 |
|
public void setDataSource (FileDescriptor fd) |
指定装载fd所代表的文件 |
|
public void setDataSource (Context context, Uri uri) |
指定装载uri所代表的文件 |
|
public void setDataSource (Context context, Uri uri, Map<String, String> headers) |
指定装载uri所代表的文件 |
|
public void prepare() |
预期准备,因为setDataSource()方法之后,MediaPlayer并未真正的去装载那些音频文件,需要调用prepare()这个方法去准备音频 |
|
public void setLooping(boolean looping) |
设置是否循环播放这个音乐文件 |
|
public void setSurface(Surface surface) |
设置Surface |
|
public void setVolume(float leftVolume,float rightVolume) |
设置音量 |
|
public void setDisplay(SurfaceHolder sh) |
设置显示方式 |
|
public void seekTo(int mses) |
寻求指定的时间位置。 |
|
public void isLooping() |
判断是否循环播放 |
|
public void isPlaying() |
判断是否正在播放 |
|
public void release() |
释放相关该MediaPlayer对象的资源。 |
绑定事件监听器
|
监听器 |
描述 |
|
public void setOnCompletionListener (MediaPlayer.OnCompletionListener listener) |
为MediaPlayer的播放完成事件绑定事件监听器 |
|
public void setOnErrorListener (MediaPlayer.OnErrorListener listener) |
为MediaPlayer的播放错误事件绑定事件监听器 |
|
public void setOnPreparedListener (MediaPlayer.OnPreparedListener listener) |
当MediaPlayer调用prepare()方法时触发该监听器 |
|
public void setOnSeekCompleteListener (MediaPlayer.OnSeekCompleteListener listener) |
当MediaPlayer调用seek()方法的时候触发该监听器 |
播放音频的4种方法:
1、播放应用的资源文件(res/raw/)
通过我们上面介绍的几个静态构造函数创建MediaPlayer对象
- MediaPlayer mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this R.raw.a1);
2、播放应用的原始资源文件(assets)
1) 通过Context.getAssets()方法获得AssetManager对象
2) 通过AssetManager对象的openFd(String name)方法打开指定的原生资源文件夹,返回一个AssetFileDescriptor对象
3) 通过AssetFileDescriptor的getFileDescriptor()得到一个FileDescriptor对象
4) 通过public void setDataSource (FileDescriptor fd, long offset, long length)来创建MediaPlayer对象
5) 调用MediaPlayer.prepare()方法准备音频
6) 调用MediaPlayer的start()、pause()、stop()等方法控制
- AssetFileDescriptor fileDescriptor = assetManager
- );
- new mediaPlayer.prepare();<p> mediaPlayer.start();</p>
3、播放外部存储上的音频资源文件(sdcard)
1) 创建MediaPlayer对象,通过MediaPlayer对象的setDataSource(String path)方法装载预定的音频文件
2) 调用MediaPlayer对象的prepare()方法准备音频
3) 调用MediaPlayer的start()、pause()、stop()等方法控制
- mediaPlayer = new );
4、播放网络上的音频文件
1) 根据网络上的地址创建Uri对象
2) 通过public void setDataSource (Context context, Uri uri)设置音频来源装载音频文件
3) 调用MediaPlayer对象的prepare()方法准备音频
4) 调用MediaPlayer的start()、pause()、stop()等方法控制
- mediaPlayer = new
- this mediaPlayer.start();
当然也可以通过我们的另一种静态构造方法直接创建一个MediaPlayer对象
- Uri uri = Uri
-
this
uri);

浙公网安备 33010602011771号