我有这段代码:
package com.example.pr;
import android.media.MediaPlayer;
public class Audio{
MediaPlayer mp;
public void playClick(){
mp = MediaPlayer.create(Audio.this, R.raw.click);
mp.start();
}
}
我在“create”中出现错误,此消息“MediaPlayer类型中的方法create(Context,int)不适用于参数(Audio,int)”
为什么?
答案 0 :(得分:11)
MediaPlayer.create()需要 Context 作为第一个参数。传入当前的活动,它应该有效。
尝试:
public void playClick(Context context){
mp = MediaPlayer.create(context, R.raw.click);
mp.start();
}
在您的活动中:
audio = new Audio();
...
audio.playClick(this);
但是一旦声音结束,不要忘记在MediaPlayer实例上调用release,否则你将获得异常。
但是,使用 SoundPool 进行短暂点击可能会更好。
答案 1 :(得分:1)
public class Audio{
MediaPlayer mp;
Context context;
public Audio(Context ct){
this.context = ct;
}
public void playClick(){
mp = MediaPlayer.create(context, R.raw.click);
mp.prepare();
mp.start();
}
来自您的活动:
Audio audio = new Audio(YourActivity.getApplicationContext());
audio.playClick();