SoundPool

构造方法

构造方法

描述

public SoundPool (int maxStreams, int streamType, int srcQuality)

参数说明:

maxStreams:指定支持多少个文件

streamType:指定声音类型

srcQuality:声音品质

常见方法

方法名称

描述

public int load (Context context, int resId, int priority)

从资源ID所对应的资源加载声音

public int load (AssetFileDescriptor afd, int priority)

从原始资源文件中加载声音

public int load (FileDescriptor fd, long offset, long length, int priority)

从原始资源文件中加载声音并设置加载从哪开始到多长的声音文件

public int load (String path, int priority)

从指定文件路径加载声音

public final void pause (int streamID)

暂停

public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)

播放

参数说明:

soundID:资源ID

leftVolume:左频道声音

rightVolume:右频道声音

loop:-1代表循环,0代表不循环

rate:值0.5-2.0设置1为正常

public final void release ()

释放SoundPool对象资源

public final void stop (int streamID)

停止

public void setOnLoadCompleteListener (SoundPool.OnLoadCompleteListener listener)

设置监听器,在加载音乐文件完成时触发该事件

        
  1. packagecom.jiahui.soundpool;
  2. importjava.util.HashMap;
  3. importjava.util.Map;
  4. importandroid.app.Activity;
  5. importandroid.media.AudioManager;
  6. importandroid.media.SoundPool;
  7. importandroid.os.Bundle;
  8. importandroid.view.View;
  9. importandroid.view.View.OnClickListener;
  10. importandroid.widget.Button;
  11. publicclassSoundPoolDemoActivityextendsActivityimplementsOnClickListener{
  12. privateButtonbtnbomb,btnshot,btnarrow;
  13. privateSoundPoolsoundPool;
  14. Map<Integer,Integer>soundMap=newHashMap<Integer,Integer>();
  15. publicvoidonCreate(BundlesavedInstanceState){
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. btnbomb=(Button)this.findViewById(R.id.btnbomb);
  19. btnshot=(Button)this.findViewById(R.id.btnshot);
  20. btnarrow=(Button)this.findViewById(R.id.btnarrow);
  21. btnbomb.setOnClickListener(this);
  22. btnshot.setOnClickListener(this);
  23. btnarrow.setOnClickListener(this);
  24. //创建SoundPool对象设置最多容纳10个音频。音频的品质为5
  25. soundPool=newSoundPool(10,AudioManager.STREAM_SYSTEM,5);
  26. //load方法加载音频文件返回对应的ID
  27. soundMap.put(1,soundPool.load(this,R.raw.bomb,1));
  28. soundMap.put(2,soundPool.load(this,R.raw.shot,1));
  29. soundMap.put(3,soundPool.load(this,R.raw.arrow,1));
  30. }
  31. @Override
  32. publicvoidonClick(Viewv){
  33. switch(v.getId()){
  34. caseR.id.btnbomb:
  35. soundPool.play(soundMap.get(1),1,1,1,0,1);
  36. break;
  37. caseR.id.btnshot:
  38. soundPool.play(soundMap.get(2),1,1,1,0,1);
  39. break;
  40. caseR.id.btnarrow:
  41. soundPool.play(soundMap.get(3),1,1,1,0,1);
  42. break;
  43. default:
  44. break;
  45. }
  46. }
  47. }

更多相关文章

  1. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  2. 一款霸榜 GitHub 的开源 Linux 资源监视器!
  3. Android(安卓)使用WebView 加载新闻详情,添加点击图片的js(使用的
  4. Android加载webview 弹出错误
  5. 实现android按键震动按键声音的机制
  6. Android中picasso图片缓存
  7. 编写android加载图片的程序时,遇到了内存泄露问题!
  8. Frame Animation&&Drawable Animation
  9. android ubuntu9.10 源码的编译 Eclipse工程 Contacts编译 应用

随机推荐

  1. Android(安卓)Compatibility Package
  2. Android学习(三)
  3. Android:控件布局(线性布局)LinearLayout
  4. Android抛出异常NetworkOnMainThreadExce
  5. (翻译)Android中的定时任务
  6. Ndk(jni)调用第三方的so库
  7. Ubuntu下搭建Android(安卓)NDK开发环境
  8. android设置Activity背景透明
  9. Android(安卓)启动过程分析 (二)
  10. 如何让android apk 获得系统权限