Android:mediaplayer创建

时间:2012-08-28 07:52:13

标签: android android-mediaplayer

我有这段代码:

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)”

为什么?

2 个答案:

答案 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();