mercredi 28 janvier 2015

Android Sudio: jouer un son

le but  est de produire un son lorsqu'on appuie sur un bouton

Il faut dans un premier temps faire l'import de MediaPlayer pour accéder aux méthodes des sons.

import android.media.MediaPlayer;

remarque l'import peut être généré automatiquement par les touche Alt + espace

La méthode est appelée

On déclare un son de type MediaPlayer
 et on écrit la méthode playSound

    MediaPlayer mpSong = null;
    private void playSound (int resId) {
        if(mpSong != null) {
            mpSong.stop();
            mpSong.release();
        }


La méthode est appelée lors du clic sur le bouton.

        bouton.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {

                    texte.setText("tu as appuyé sur le bouton");
                    playSound(R.raw.p1);

                }
            });




Il faut placer le fichier son dans le répertoire raw ( que l'on crée si celui-ci n'existe pas)




___________________________________________________________________________
 code complet 

package com.tontonzition.sos321prout;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;

import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends Activity {
    MediaPlayer mpSong = null;

    private void playSound (int resId) {
        if(mpSong != null) {
            mpSong.stop();
            mpSong.release();
        }
        mpSong = MediaPlayer.create(this, resId);
        mpSong.start();
    }
    public void onPause() {
        super.onPause();
        if(mpSong != null) {
            mpSong.stop();
            mpSong.release();
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //  le layout créé est  bien été associé à  activity_main

        final TextView  texte  = (TextView) findViewById(R.id.champTexte);
        final Button  bouton  = (Button) findViewById(R.id.buttonGO);

        bouton.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {

                    texte.setText("tu as appuyé sur le bouton");
                    playSound(R.raw.p1);

                }
            });

        }
}


Aucun commentaire:

Enregistrer un commentaire