Rozwijam prostą grę na Androida. Chcę dodać efekty dźwiękowe dla każdego zdarzenia dotyku . Jednak dodałem efekt dźwiękowy w tle, który działa przez całą grę. Ale jak dodać malutki efekt dźwiękowy do dotknięcia dowolnej postaci gry. Dla lepszego zrozumienia: Poniżej znajduje się mój projekt klasy: Mam główną działalność, z której jako widok nazywam moją klasę GameView, która rozszerza surfaceView. Na dźwięk bacground Właśnie stworzył dźwięk w główną działalność i wtedy nazywa że klasa GameView jak poniżej:Efekty dźwiękowe gry w Androidzie
public class MainActivity extends Activity {
MediaPlayer backgroundMusic;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
backgroundMusic = MediaPlayer.create(MainActivity.this, R.raw.bg);
backgroundMusic.setLooping(true);
backgroundMusic.setVolume(10.0f, 3.0f);
backgroundMusic.start();
setContentView(new GameView(this));
}
}
I po jest moją klasę GameView. Chcę dodać efekt dźwiękowy tutaj w tej klasie onTouchEvent jak poniżej:
public class GameView extends SurfaceView {
@Override
public boolean onTouchEvent(MotionEvent event) {
//checking condition I want to give different sound here.
}
}
Próbowałem zrobić to jako główną działalność (który używa MediaPlayer.creat()), ale to pokazuje błąd. Ktoś wie, jak dodać taki efekt dźwiękowy na podstawie mojego projektu klasowego?
_ "to pokazuje błąd" _. A jaki jest błąd ...? – Michael
Pokazany błąd nie jest runtime. Tylko mój kompilator mówi jak poniżej: "Metoda create (Context, int) w typie MediaPlayer nie ma zastosowania do argumentów (GameView, int)" Może to być spowodowane tym, że GameView nie jest klasą Activity. Jednak nie wiem dlaczego ... @Michael – exponentialFun