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

"create" でエラーが発生し、"The method create(Context, int) in the type MediaPlayer is not applied for the arguments (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 に答える