3

我有这个代码:

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();
    }
}

我在“创建”时出现错误,此消息“MediaPlayer 类型中的方法 create(Context, int) 不适用于参数 (Audio, int)”

为什么?

4

2 回答 2

12

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播放短点击可能会更好。

于 2012-08-28T07:54:45.373 回答
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();
于 2012-08-28T07:56:09.053 回答