简单介绍:
播放声音有两种、一种是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,这个让我查了好久。