Key Event i Audio

W książce Hello Android znalazłem fajny przykład na to jak obsłużyć przyciski oraz jak otworzyć dźwięki w formacie mp3. Wystarczy nagrać kilka mp3 i wrzucić je do naszego projektu do katalogu res->raw. Ja dodałem tylko 3 pliki gora, lewo i prawo. Następnie do głównego pliku (MainActivity.java) dodajemy następujący kod.

package com.example.keyevent;

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;

public class MainActivity extends Activity {
 private MediaPlayer mp;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 setVolumeControlStream(AudioManager.STREAM_MUSIC);
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 getMenuInflater().inflate(R.menu.main, menu);
 return true;
 }
 
 @Override
 public boolean onKeyDown(int kodKlaw, KeyEvent zdarzenie) {
 int idZas;
 switch (kodKlaw) {
 case KeyEvent.KEYCODE_DPAD_UP:
 idZas = R.raw.gora;
 break;
 case KeyEvent.KEYCODE_DPAD_LEFT:
 idZas = R.raw.lewo;
 break;
 case KeyEvent.KEYCODE_DPAD_RIGHT:
 idZas = R.raw.prawo;
 break;

 default:
 return super.onKeyDown(kodKlaw, zdarzenie);
 }
 
 // Zwalnia zasoby wcześniejszej instancji MediaPlayer
 if (mp != null) {
 mp.release();
 }
 
 // Tworzy nową instancję MediaPlayer do odtwarzania dźwięku
 mp = MediaPlayer.create(this, idZas);
 mp.start();
 
 // Wskazuje na to, że dany klawisz został obsłużony
 return true;
 }
}

Teraz gdy w waszym telefonie naciśniecie przycisk w górę lub przesuniecie sensor ruchy do góry, to odtworzy wam się dźwięk.

Kliknij, aby pobrać projekt