天天看点

Android 之 使用MediaPlayer播放音频

[size=small][color=olive][b][size=small][color=olive][b]1、 Android 中的多媒体播放都是由MediaPlayer类进行处理的,通过MeidaPlayer可以播放各种

多媒体格式的音频以及视频文件,文件位置如下:

* 存储在应用程序内部的资源;

* 本地资源;

* Content Provider 提供的资源;

* 来自网络的URI 流中的资源;

2、 Android 中提供了常见的音频编码、解码机制;

* 支持的音频格式有:mp3 wav 3gp;

* 支持的视频格式有:mp4 3gp;

3、 使用MediaPlayer 播放多媒体的步骤:

* 对MediaPlayer 进行初始化工作;

* 让MediaPlayer 实例完成准备播放;

* 开始播放;

* 在播放时进行暂停,停止,以及定位到某点播放;

* 播放完成;

小贴士:

* Android 仅支持有限个数的同步MediaPlayer对象,则:播放完成之后要注意对MediaPlayer对象

进行释放;mediaPlayer.release();

* 资源文件在应用中应该放在res/raw 目录中,该目录不会被编译,能生成资源ID , 可以

通过:Resource.openRawResource(int id); 来获取二进制输入流;

4、音频播放有两种方式:

* 方式一:通过对MediaPlayer 实例进行setDataSource 方法,可以接受一个文件路径,ContentProvider提供的URI,网络URL 路径

java代码如下:[/b][/color][/size]

/* 获得MeidaPlayer对象 */
		MediaPlayer mediaPlayer = new MediaPlayer();

		/* 得到文件路径 *//* 注:文件存放在SD卡的根目录,一定要进行prepare()方法,使硬件进行准备 */
		File file = new File(Environment.getExternalStorageDirectory(),"aa.mp3");

		try{
			/* 为MediaPlayer 设置数据源 */
			mediaPlayer.setDataSource(file.getAbsolutePath());

			/* 准备 */
			mediaPlayer.prepare();

		}catch(Exception ex){
			ex.printStackTrace();
		}
           

[size=small][color=olive][b] * 方式二:通过create()方法返回MediaPlayer对象,通过此方式不需要prepare()工作,create()过程中该工作被完成;

java代码如下:[/b][/color][/size]

/* 从res/raw 资源中获取文件 */
		mediaPlayer = MediaPlayer.create(this,R.raw.sky);

		/* 根据URI:创建 */
		//mediaPlayer = MediaPlayer.create(this, Uri.parse("/mnt/sdcard/aa.mp3"));

		/* 网络URI流 */
		//mediaPlayer = MediaPlayer.create(this, Uri.parse("http://www.sunzone.com/aa.mp3"));
           

[size=small][color=red][b]

5、MediaPlayer 的缺点:

* (1)资源占用量较高,延迟时间较长。

* (2)不支持多个音频同时播放[/b][/color][/size]

[color=red]。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。[/color]

[size=small][color=green][b]代码:[/b][/color][/size]