音频的播放

1.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="wyf.ytl.MainActivity" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="没有播放任何声音" />

    <Button 
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用MediaPlayer播放声音"
        />
    
    <Button 
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="暂停MediaPlayer声音"
        />
    
    <Button 
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用SoundPool播放声音"
        />
    
    <Button 
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="暂停SoundPool声音"
        />
    
</LinearLayout>

2.

public class MainActivity extends ActionBarActivity implements android.view.View.OnClickListener{

	Button button1;
	Button button2;
	Button button3;
	Button button4;
	TextView textView;
	MediaPlayer mMediaPlayer;
	SoundPool soundPool;
	HashMap<Integer, Integer> soundPoolMap;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initSounds();
		textView = (TextView) findViewById(R.id.textView);
		button1 = (Button) findViewById(R.id.button1);
		button2 = (Button) findViewById(R.id.button2);
		button3 = (Button) findViewById(R.id.button3);
		button4 = (Button) findViewById(R.id.button4);
		
		button1.setOnClickListener(this);
		button2.setOnClickListener(this);
		button3.setOnClickListener(this);
		button4.setOnClickListener(this);
		
	}

	public void initSounds(){
		//初始化mediaplayer
		mMediaPlayer = MediaPlayer.create(this, R.raw.backsound);
		soundPool = new SoundPool(4,AudioManager.STREAM_MUSIC, 100);
		soundPoolMap = new HashMap<Integer, Integer>();
		soundPoolMap.put(1, soundPool.load(this, R.raw.dingdong, 1));
	}
	
	//用SoundPool播放声音的方法
	public void playSound(int sound,int loop) {
		AudioManager mgr = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
		float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
		float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
		float volume = streamVolumeCurrent/streamVolumeMax;
		soundPool.play(soundPoolMap.get(sound), volume, volume, 1, loop, 1f);
	}
	
	@Override
	public void onClick(View v) {
		int key = v.getId();
		switch (key) {
		case R.id.button1:
			textView.setText("use MediaPlayer to play sound");
			if(!mMediaPlayer.isPlaying()){
				mMediaPlayer.start();
			}
			break;
			
		case R.id.button2:
			textView.setText("suspend MediaPlayer's sound ");
			if(mMediaPlayer.isPlaying()){
				mMediaPlayer.pause();
			}
			break;
			
		case R.id.button3:
			textView.setText("use SoundPool to play sound");
			this.playSound(1, 0);
			break;
			
		case R.id.button4:
			textView.setText("suspend the SoundPool's sound");
			soundPool.pause(1);
			break;

		default:
			break;
		}
	}
}

相关推荐