这是我的代码,它更容易向您展示,然后解释:
public class Sound {
public MediaPlayer audio;
public Sound(Context context, int id) {
audio = MediaPlayer.create(context.getApplicationContext(), id);
}
}
public class ClassA {
Sound sound = new Sound(getContext(), R.raw.audio);
public void method() {
//plays only once here, so its not looping, which is good
sound.audio.start();
}
}
所以我在这里尝试做的是有一个定义声音的类,然后允许我播放它,但是当我在手机上加载我的应用程序时,它会崩溃。
我今天刚刚开始处理声音,所以我不太了解。我不知道为什么这不起作用,我计划今天发布我的第一个应用程序。
非常感谢您的帮助!
忘了提及,我这样做的原因是我的游戏听起来并没有因为创建了很多MediaPlayers而崩溃。
答案 0 :(得分:1)
对于简短的声音样本,最好使用 android.media.SoundPool 。
import android.content.Context;
import android.media.*;
您的活动中的任何位置
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
SoundPool soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
int soundId = soundPool.load(theContext, R.raw.audio, 1);
int streamVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
int streamId = soundPool.play(soundId, streamVolume, streamVolume, 1, 0, 1f);