mercoledì 9 novembre 2011

Riprodurre audio in background nella tua App


Come riprodurre un file audio come sottofondo della propria applicazione? In android è molto semplice ovviamente! Prima di tutto android supporta 2 formati: MP3 e WAV. Creiamo una sottocartella chiamata "raw" nella cartella "res" del progetto. Copiamo i file audio nella cartella raw oppure se si usa Eclipse importiamoli con l'apposito comando.
Ora nell'Activity dove vogliamo venga riprodotto l'audio dichiariamo il seguente codice:

import android.media.MediaPlayer;

quindi importiamo per prima cosa la libreria "MediaPlayer". Dichiariamo poi una variabile come riferimento alla libreria MediaPlayer. La variabile va dichiarata subito dopo la definizione della classe

private MediaPlayer mp = null;

creiamo il metodo "playSound". Tale metodo crea un nuovo Thread in modo che l'audio sia riprodotto senza bloccare il Thread principale. Il metodo prende in input il nome del file da riprodurre.

    private void playSound(int sFile)
    {
    //set up MediaPlayer  
    final int medFile = sFile;
    Thread thread = new Thread(new Runnable()      
    {
          public void run()
          {
                mp = MediaPlayer.create(getApplicationContext(), medFile);
                mp.start();
          }
    });
    thread.start();      
    }
           
per far partire la riproduzione dell'audio copiamo il seguente frammento di codice nel punto dove vogliamo parta la riproduzione

playSound(R.raw.mysoundfile);

infine per fermare la riproduzione dell'audio basta utilizzare la seguente istruzione

mp.stop();

3 commenti:

  1. quali sono i permessi da inserire nel manifest??

    RispondiElimina
  2. aiuto!? mp.stop(); lo devo mettere subito dopo playSound? o devo mettere prima una pausa?

    RispondiElimina
  3. Ciao Anonimo, nessun permesso va inserito nel manifest e la chiamata a mp.stop() la devi mettere ovviamente dopo playSound ma non necessariamente subito dopo, mettila quando vuoi che si fermi la riproduzione del suono.

    RispondiElimina