播放声音

本文介绍了Android中SoundPool类的应用,对比MediaPlayer,SoundPool占用更少的CPU资源且响应更快,适用于游戏特效或提示音播放。文章提供了创建SoundPool实例、加载及播放声音的具体示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在android里播放声音有两种方法。一种是使用MediaPlayer这个API今天先不详细说
MediaPlayer.setDataSource(Path)
MediaPlayer.create(Context, uri)
然后调用起播放停止等方法。
今天主要说的是SoundPool类,这个类相比MediaPlayer使用较少的CPU资源和较短的反应延迟 ,可以自行设置声音的品质、音量。不过SoundPool只有1M的内存开销,因此这个API可以使用在游戏特效,或者提示音上面,SoundPool播放时不会立马播放,它有大概100ms的延迟,下面写了个单个播放的小列子,用了一个线程等待1秒再播放,当然也可以选择某个事件来播放声音
private SoundPool sp;
private int hit;
sp = new SoundPool(10, AudioManager.STREAM_MUSIC,100);
//第一个参数是最大连接数,这儿可以建立一个播放池,第二个参数是播放类型,第三个是声音质量
hit = sp.load(activity,R.raw.okk, 1);
//hit=sp. load(Context context, int resId, int priority)
//从APK资源载入
hit = sp.load(FileDescriptor fd, long offset, long length, int priority)
//从FileDescriptor对象载入
//hit = sp.load(AssetFileDescriptor afd, int priority)
//从Asset对象载入
//hit = sp.load(String path, int priority)
//从完整文件路径名载入
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
sp.play(hit, 1, 1, 0, 0, 1);
} catch (InterruptedException e) {
}
}
}).start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值