首页 > 代码库 > Android 简单播放音频

Android 简单播放音频

简单介绍:

播放声音有两种、一种是SoundPool,一种是MediaPlayer。

SundPool用于播放短小的音乐,比如游戏里面的特效音,按键音等等。

MediaPlayer可以播放视频和音频。


1、使用SoundPool

package com.shao;

import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
	
	public SoundPool soundPool;
	
	public Button btnSoundPool;
	
	public Button btnMediaPlay;
	
	public int x;
	
	public MediaPlayer mediaPlayer;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		this.soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
		final int x = this.soundPool.load(this,R.raw.hacker, 1);
		this.btnSoundPool = (Button) findViewById(R.id.btnSoundPool);
		
		this.btnSoundPool.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				soundPool.play(x, 1, 1, 0, 0, 0);
			}
		});
		
		
	}
}


注意,

final int x = this.soundPool.load(this,R.raw.hacker, 1);

  • Returns:

  • a sound ID. This value can be used to play or unload the sound.

可以看到这里返回的是一个soundId,而这个soundId在soundPool对象调用播放方法的时候正好用到。


2、使用MediaPlay

package com.shao;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
	
	public Button btnMediaPlay;
	
	public MediaPlayer mediaPlayer;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		btnMediaPlay = (Button) findViewById(R.id.btnMediaPlay);
		mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.hacker);
		this.btnMediaPlay.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				try {
					mediaPlayer.start();
				} catch (Throwable e) {
					e.printStackTrace();
				} 
			}
		});
	}
}


这个没有什么好注意的。知道只是下面这个方法,创建的是一个MediaPlayer对象即可

MediaPlayer.create(MainActivity.this, R.raw.hacker);

而调用播放的方法不是play,是start,这个让我查了好久。

Android 简单播放音频