Как я могу использовать SoundPool в SurfaceView? - PullRequest
1 голос
/ 12 февраля 2012

У меня есть такая структура:

1) основная деятельность:

public class mainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {   

    super.onCreate(savedInstanceState);      
    setContentView(new GameView(this));

}

2) просмотр игры

SoundPool sp;
int mySound = 0;    

public class GameView extends SurfaceView implements SurfaceHolder.Callback {


public GameView(Context context) {
    super(context);

    sp = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
    mySound = sp.load(this, R.raw.mysound, 1);      

}

On line "mySound = sp.load (this, R.raw.mysound, 1);" это дает мне ошибку - «Метод load (Context, int, int) в типе SoundPool не применим для аргументов (GameView, int, int)». Ребята, как это исправить? Когда я использую «расширяет активность», она работает нормально, но в SurfaceView это не работает. Помогите пожалуйста.

1 Ответ

3 голосов
/ 12 февраля 2012

Измените свой код, чтобы передать контекст следующим образом:

mySound = sp.load(context, R.raw.mysound, 1);
...