MediaPlay和SoundPool
2015-08-30 14:21
288 查看
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 ;
}
音频资源的播放
区别:
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 ;
}
相关文章推荐
- HDOJ 1869 六度分离
- C语言入门学习视频
- Linux C标准IO库函数详解 一
- HTTP协议--处理状态和返回状态码含义
- .Net Reflection反射技术
- D、作弊揭发者-------(计蒜之道 测试赛)
- solr5.2.1环境搭建
- ViewController
- maven构建多模块的web项目
- JAVA进阶路线图
- centos6.5在VMware和Oracle VM VirtualBox下安装的区别
- Android eventbus开源框架(模仿)
- HDOJ 1548 A strange lift
- Android自学笔记之 MultiAutoTextView的功能、特殊属性、用法(与AutoTextView的区别和近似)
- Ubuntu14.04上配置hadoop
- timer.hpp
- C、置换的玩笑-------(计蒜之道 测试赛)
- HDOJ 题目3954 Level up(线段树去见面更新区间查询)
- UUID iOS设备唯一标示符
- 自定义属性TypedArray的使用步骤