MediaPlayer详解

MediaPlayer详解

1.创建

static MediaPlayer create(Context context,Uri uri);
从指定的Uri来装载音频文件并返回创建的MediaPlayer对象(本地文件和网络资源均可)

static MediaPlayer create(Context context,int resid);
从resid资源Id对应的资源文件中装载音频文件,并返回新创建的MediaPlayer对象。(资源文件一般放在res/raw文件中,R.raw.xx)

上述对于只播放一次的音频文件是有效的,但由于是静态方法,所以不建议对多个音频文件多次使用上述方法,可使用new构造一个对象再进行下面步骤的配置。

2.加载音频文件

setDataSource(String Path);
指定装载path路径所代表的文件

setDataSource(FileDescriptor fd,long offset,long length);
指定装载fd所代表的文件中从offset开始,长度为lenth的文件内容

setDataSource(FileDescriptor fd);
指定装载fd所代表的文件

setDataSource(Context context,Uri uri);
指定装载uri所代表的文件

以上只是装载了播放内容,并未真正开始播放,还需调用prepare();方法准备。

3.播放音频文件

player.reset(); //重设装载配置
player.setDataSource(…); //指定装载内容
player.prepare(); //装载内容
player.start(); //播放

4.监听事件

setOnCompleteListener(MediaPlayer.OnCompeleteListener listener);
interface MediaPlayer.OnCompeleteListener{
   
   
void onCompletion(MediaPlayer mp);
}

为MediaPlayer的播放完成时间绑定事件监听器。

setOnErrorListener(MediaPlayer.OnErrorListner listener);
interface MediaPlayer.OnErrorListner {
   
   
void onError(MediaPlayer mp,int what,int extra);
}

为MeidaPlayer的播放错误事件提供事件监听器。
what是错误类型
MEDIA_ERROR_UNKNOWN 未指明的错误类型
MEDIA_ERROR_SERVER_DIED 媒体服务关闭

extra是特别的错误代码
MEDIA_ERROR_IO 文件或者网络出现操作错误
MEDIA_ERROR_MALFORMED 比特流不符合编码标准或者文件规格
MEDIA_ERROR_UNSUPPORTED 比特流符合编码标准或者文件规格,但是媒体框架不支持
MEDIA_ERROR_TIMED_OUT 一些操作超时,一般超过3-5秒

setOnPreparedListener(MediaPlayer.OnPreparedListener listener);
interface MediaPlayer.OnPreparedListener {
   
   
void OnPrepared(MediaPlayer mp);
}

为MediaPlayer调用prepare()方法时触法该监听器。

setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener listener);
interface 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值