Lecture de son à l'aide de l'exemple Soundpool

Je suis très débutant pour la programmation Android, et j'aimerais apprendre comment utiliser la méthode soundpool , j'ai eu une recherche à ce sujet, mais tout ce que j'ai trouvé semble pas facile à comprendre! Je voudrais que vous me montrez un exemple très simple qui exécute 2 sons.

  • Gradle, Javadoc et la documentation Android
  • Ne peut pas obtenir la vue actuelle dans Viewpager
  • Android: permet à l'interaction de passer d'une activité à l'autre, comme la gestion des onglets Chrome
  • Comment afficher les nombres persans (Farsi) en vue
  • Une liste avec une case à cocher multi-sélection sur une boîte de dialogue d'alerte?
  • Comment créer un calendrier personnalisé avec la gestion des événements?
  • Android Studio gradle 2.1.3 issue
  • Android Studio 3.0 Beta 1: Impossible de résoudre: com.android.support:multidex:1.0.2
  • Barre d'état d'animation Couleur sur DrawerLayout - Conception de matériaux
  • Erreur de connexion d'entrée Android
  • Comment faire une date spinner sur Android
  • Installation d'une application Android Market sur Emulator
  • 4 Solutions collect form web for “Lecture de son à l'aide de l'exemple Soundpool”

    1.Créer un dossier nommé sous crème sous votreApp / res /

    2. Copiez et collez votre sonnerie dans ce dossier

    Pour une compréhension approfondie, vérifiez ce didacticiel 1 et le didacticiel 2

     SoundPool sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0); /** soundId for Later handling of sound pool **/ int soundId = sp.load(context, R.raw.windows_8_notify, 1); // in 2nd param u have to pass your desire ringtone sp.play(soundId, 1, 1, 0, 0, 1); MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.windows_8_notify); // in 2nd param u have to pass your desire ringtone //mPlayer.prepare(); mPlayer.start(); 

    Vous pouvez également configurer l'auditeur

      sp.setOnLoadCompleteListener(new OnLoadCompleteListener() { @Override public void onLoadComplete(SoundPool soundPool, int sampleId,int status) { } }); 

    Pour lollipop check @ user3833732 réponse.

    Oui. Je l'ai aussi passé. Mais pour la sécurité, j'ai enregistré un code que j'ai trouvé en ligne. Bien que l'utilisation ne l'ait pas utilisée, je sais que ça va bientôt être utile …

    1) Vous devez créer un objet AudioAttributes:

     AudioAttributes attributes = new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_GAME) .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .build(); 

    2) Créer un objet SoundPool:

     SoundPool sounds = new SoundPool.Builder() .setAudioAttributes(attributes) .build(); 

    3) Comment utiliser SoundPool sur tous les niveaux API exemple:

     SoundPool sound; protected void createSoundPool() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { createNewSoundPool(); } else { createOldSoundPool(); } } @TargetApi(Build.VERSION_CODES.LOLLIPOP) protected void createNewSoundPool(){ AudioAttributes attributes = new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_GAME) .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .build(); sounds = new SoundPool.Builder() .setAudioAttributes(attributes) .build(); } @SuppressWarnings("deprecation") protected void createOldSoundPool(){ sounds = new SoundPool(5,AudioManager.STREAM_MUSIC,0); } 

    J'ai écrit un SoundPoolManager qui peut être utilisé pour charger des fichiers son et jouer en tant que de besoin. Vous pouvez le voir ici .

    Merci.

    Voici un petit exemple de soundPool , il est pris ici et légèrement modifié pour correspondre à l'API Post 21.

    Une chose à noter est maxStreams , qui indique le nombre de flux pouvant être exécutés en parallèle, s'il en est un (par défaut), il peut être supprimé du générateur.

     import android.app.Activity; import android.content.Context; import android.media.AudioManager; import android.media.SoundPool; public class SoundManager extends Activity { static SoundPool soundPool; static int[] sm; static AudioManager amg; public static void InitSound() { int maxStreams = 1; Context mContext = getApplicationContext(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { soundPool = new SoundPool.Builder() .setMaxStreams(maxStreams) .build(); } else { soundPool = new SoundPool(maxStreams, AudioManager.STREAM_MUSIC, 0); } sm = new int[3]; // fill your sounds sm[0] = soundPool.load(mContext, R.raw.sound_1, 1); sm[1] = soundPool.load(mContext, R.raw.sound_2, 1); sm[2] = soundPool.load(mContext, R.raw.sound_3, 1); amg = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE); } static void playSound(int sound) { soundPool.play(sm[sound], 1, 1, 1, 0, 1f); } public final void cleanUpIfEnd() { sm = null; soundPool.release(); soundPool = null; } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.