MediaPlay和SoundPool

MediaPlay和SoundPool
音频资源的播放
区别:
MediaPlayer可以播放时间较长,文件较大的音频资源;
SoundPool不支持较大的音频资源,支持多个短音效的同时播放。
1)MediaPlayer的使用
一般建议将MediaPlayer放在Service中来使用。
播放的声音资源:来自sd卡,网络,项目内部等。
声音文件在项目内部存放位置 res/raw/*.*
i. 初始化MediaPlayer
1) 使用静态方法create
player = MediaPlayer.create(context , R.raw.X) ;
player = MediaPlayer.create(context , uri) ;
特点:已经设置好了播放源,一般用于播放背景音乐;而且使用这种方式初始化的MediaPlayer对象可以直接调用start()方法播放音频。
2) 直接new
player = new MediaPlayer();
该方式初始化的MediaPlayer对象,需要通过setDataSource()设置播放源,而且还需要调用prepare()之后才能调用start()方法。
一首歌曲播放结束,播放下一首歌曲的时候
需要注意需要调用reset() ==> setDataSource() ==> prepare()
i。 new
ii。 设置播放源
reset() ==> setDataSource()  ==> prepare()
iii。播放/暂停
start()/pause() 
iv。 停止播放
stop()
v。 调整播放进度
seekTo()
ii. 其他相关方法
setLooping()
isPlaying()
iii. 监听器
OnCompletionListener
iv. MediaPlayer 资源释放
protected void onDestroy() {
super.onDestroy();
// 释放MediaPlayer所占用的资源
if(null != player) {
if(player.isPlaying()) {
player.stop() ;
}
player.release() ;
player = null ;
}
}

2)SoundPool
i. 初始化
soundPool = new SoundPool(max , AudioManager.STREAM_MUSIC , 0) ;
ii. 载入音频资源
int soundId = soundPool.load(context , R.raw.X , 1) ;
。。。
iii. 播放音频
soundPool.play(soundId , 1 , 1 , 0 , 0 , 1) ;
iv. 释放资源
if(null != soundPool) {
soundPool.release() ;
soundPool = null ;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值