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