从头学Android之多媒体--使用SoundPool播放音频

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. package com.jiahui.soundpool;  
  2.  
  3. import java.util.HashMap;  
  4.  
  5. import java.util.Map;  
  6.  
  7. import android.app.Activity;  
  8.  
  9. import android.media.AudioManager;  
  10.  
  11. import android.media.SoundPool;  
  12.  
  13. import android.os.Bundle;  
  14.  
  15. import android.view.View;  
  16.  
  17. import android.view.View.OnClickListener;  
  18.  
  19. import android.widget.Button;  
  20.  
  21.  
  22. public class SoundPoolDemoActivity extends Activity implements OnClickListener {  
  23.  
  24.        private Button btnbomb, btnshot, btnarrow;  
  25.  
  26.        private SoundPool soundPool;  
  27.  
  28.        Map<Integer, Integer> soundMap = new HashMap<Integer, Integer>();  
  29.  
  30.        public void onCreate(Bundle savedInstanceState) {  
  31.  
  32.               super.onCreate(savedInstanceState);  
  33.  
  34.               setContentView(R.layout.main);  
  35.  
  36.               btnbomb = (Button) this.findViewById(R.id.btnbomb);  
  37.  
  38.               btnshot = (Button) this.findViewById(R.id.btnshot);  
  39.  
  40.               btnarrow = (Button) this.findViewById(R.id.btnarrow);  
  41.  
  42.                btnbomb.setOnClickListener(this);  
  43.  
  44.               btnshot.setOnClickListener(this);  
  45.  
  46.               btnarrow.setOnClickListener(this);  
  47.  
  48.               // 创建 SoundPool对象设置最多容纳10个音频。音频的品质为5  
  49.  
  50.               soundPool = new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);  
  51.  
  52.               // load方法加载音频文件返回对应的ID  
  53.  
  54.               soundMap.put(1, soundPool.load(this, R.raw.bomb, 1));  
  55.  
  56.               soundMap.put(2, soundPool.load(this, R.raw.shot, 1));  
  57.  
  58.               soundMap.put(3, soundPool.load(this, R.raw.arrow, 1));  
  59.  
  60.        }  
  61.  
  62.        @Override 
  63.        public void onClick(View v) {  
  64.  
  65.               switch (v.getId()) {  
  66.  
  67.               case R.id.btnbomb:  
  68.  
  69.                      soundPool.play(soundMap.get(1), 11101);  
  70.  
  71.                      break;  
  72.  
  73.               case R.id.btnshot:  
  74.  
  75.                      soundPool.play(soundMap.get(2), 11101);  
  76.  
  77.                      break;  
  78.  
  79.               case R.id.btnarrow:  
  80.  
  81.                      soundPool.play(soundMap.get(3), 11101);  
  82.  
  83.                      break;  
  84.  
  85.               default:  
  86.  
  87.                      break;  
  88.               }  
  89.        }  
  90. }  
  91.  

 

你可能感兴趣的:(android,public,多媒体,多少)