Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何调用单独的类来播放声音?_Java_Android - Fatal编程技术网

Java 如何调用单独的类来播放声音?

Java 如何调用单独的类来播放声音?,java,android,Java,Android,我目前正在网上学习游戏开发。我想添加声音效果,使游戏更有趣一点。程序布局由main activity()和3个线程组成:GameView()、GameThread()和TheGame()TheGame()是所有更新的循环。我创建了一个用于播放声音的新类: import java.util.HashMap; import android.content.Context; import android.media.AudioManager; import android.media.SoundPo

我目前正在网上学习游戏开发。我想添加声音效果,使游戏更有趣一点。程序布局由
main activity()
和3个线程组成:
GameView()
GameThread()
TheGame()
TheGame()
是所有更新的循环。我创建了一个用于播放声音的新类:

import java.util.HashMap;

import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;

public class SoundFX {


public static final int S1 = R.raw.ball;
public static final int S2 = R.raw.balloon;

private static SoundPool mSoundPool;
private static HashMap mSoundMap;

public static void initSounds(Context context){


    mSoundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 100);
    mSoundMap = new HashMap(2);    // 2 sounds in sound map

    //Put sounds into SoundMap
    mSoundMap.put( S1, mSoundPool.load(context, R.raw.ball, 1) );
    mSoundMap.put( S2, mSoundPool.load(context, R.raw.balloon, 2) );


}//Initiate Sounds

public static void playSound(Context context, int soundID) {
    //No sounds yet loaded..... then Load
    if(mSoundPool == null || mSoundMap == null){

    initSounds(context);

    }

    float volume = 1 ;    // whatever in the range = 0.0 to 1.0

    // play sound with same right and left volume, with a priority of 1,
    // zero repeats (i.e play once), and a playback rate of 1f

    mSoundPool.play(soundID, volume, volume, 1, 0, 1f);

    }//Play


}//SoundFX
但是当我在
游戏
循环中检测到碰撞时,我想调用类并播放声音

我试过使用:

SoundFX.playSound(S1);
但是Eclipse说方法playSound(Context,int)不适用于参数(int)


有人能帮忙吗?

您没有传递上下文

SoundFX.playSound(this, S1); 

也许您应该先了解方法的签名,每个参数都是调用所必需的。(公共静态void播放声音(上下文上下文,int-soundID)SoundFX.playSound(S1))