package wyf.zcl;
import java.util.HashMap;
import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MyActivity extends Activity {
/** Called when the activity is first created. */
SoundPool sp; //得到一个声音池引用
HashMap<Integer,Integer> spMap; //得到一个map的引用
Button b1; //声音播放控制按钮
Button b1Pause; //声音暂停控制按钮
Button b2; //声音播放控制按钮
Button b2Pause; //声音暂停控制按钮
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initSoundPool(); //初始化声音池
b1=(Button)findViewById(R.id.Button01);//声音播放控制按钮实例化
b2=(Button)findViewById(R.id.Button02);//声音播放控制按钮实例化
b1Pause=(Button)findViewById(R.id.Button1Pause);
b2Pause=(Button)findViewById(R.id.Button2Pause);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playSound(1,1); //播放第一首音效,循环一遍
Toast.makeText(MyActivity.this, "播放音效1", Toast.LENGTH_SHORT).show();
}});
b1Pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sp.pause(spMap.get(1));
Toast.makeText(MyActivity.this, "暂停音效1", Toast.LENGTH_SHORT).show();
}});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playSound(2,1); //播放第二首音效,循环一遍
Toast.makeText(MyActivity.this, "播放音效2", Toast.LENGTH_SHORT).show();
}});
b2Pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sp.pause(spMap.get(2));
Toast.makeText(MyActivity.this, "暂停音效2", Toast.LENGTH_SHORT).show();
}});
}
public void initSoundPool(){ //初始化声音池
sp=new SoundPool(
5, //maxStreams参数,该参数为设置同时能够播放多少音效
AudioManager.STREAM_MUSIC, //streamType参数,该参数设置音频类型,在游戏中通常设置为:STREAM_MUSIC
0 //srcQuality参数,该参数设置音频文件的质量,目前还没有效果,设置为0为默认值。
);
spMap=new HashMap<Integer,Integer>();
spMap.put(1, sp.load(this, R.raw.attack02, 1));
spMap.put(2, sp.load(this, R.raw.attack14, 1));
}
public void playSound(int sound,int number){ //播放声音,参数sound是播放音效的id,参数number是播放音效的次数
AudioManager am=(AudioManager)this.getSystemService(this.AUDIO_SERVICE);//实例化AudioManager对象
float audioMaxVolumn=am.getStreamMaxVolume(AudioManager.STREAM_MUSIC); //返回当前AudioManager对象的最大音量值
float audioCurrentVolumn=am.getStreamVolume(AudioManager.STREAM_MUSIC);//返回当前AudioManager对象的音量值
float volumnRatio=audioCurrentVolumn/audioMaxVolumn;
sp.play(
spMap.get(sound), //播放的音乐id
volumnRatio, //左声道音量
volumnRatio, //右声道音量
1, //优先级,0为最低
number, //循环次数,0无不循环,-1无永远循环
1 //回放速度 ,该值在0.5-2.0之间,1为正常速度
);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
android游戏开发系列(1)——迅雷不及掩耳的声音
共35个文件
class:13个
png:6个
xml:4个
4星 · 超过85%的资源 需积分: 9 18 下载量 92 浏览量
2013-09-14
21:54:04
上传
评论 1
收藏 375KB RAR 举报
温馨提示
android游戏开发系列(1)。这种声音是短而快的声音,应该采用android.media.SoundPool实现。
资源推荐
资源详情
资源评论
收起资源包目录
Sample3_1.rar (35个子文件)
Sample3_1
.project 845B
project.properties 563B
src
wyf
zcl
MyActivity.java 3KB
AndroidManifest.xml 672B
res
raw
attack02.wav 40KB
attack14.wav 94KB
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 3KB
layout
main.xml 896B
drawable-xhdpi
values
strings.xml 170B
.settings
org.eclipse.jdt.core.prefs 177B
assets
gen
wyf
zcl
BuildConfig.java 149B
R.java 1KB
.classpath 475B
bin
resources.ap_ 145KB
Sample3_1.apk 150KB
classes
wyf
zcl
R$layout.class 361B
BuildConfig.class 323B
R$drawable.class 367B
R$attr.class 307B
MyActivity.class 2KB
R$raw.class 388B
MyActivity$4.class 1KB
R$id.class 457B
MyActivity$1.class 922B
R.class 487B
R$string.class 394B
MyActivity$2.class 1KB
MyActivity$3.class 922B
AndroidManifest.xml 672B
dexedLibs
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 2KB
classes.dex 5KB
共 35 条
- 1
资源评论
- hesaiisme2014-05-05还是可以的,虽然很简单
lxq_xsyu
- 粉丝: 3615
- 资源: 108
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功