2017-10-02 1 views
-1

Je crée une application où j'ai placé 10 boutons dans Gridlayout et sur chaque bouton il y a un fichier audio attribué & il devrait jouer cet audio sur Respective Button Click mais dans "1er Méthode, il ne fonctionne pas " donc j'ai écrit long code et créé" 2ème méthode "et il fonctionne, mais après avoir cliqué sur le bouton 10, puis je clique de nouveau sur le 1er bouton son ne fonctionne pas?Ne pas jouer du son sur 10 bouton différent cliquez sur

package com.example.star.spanishnumbers; 

     import android.media.MediaPlayer; 
     import android.support.v7.app.AppCompatActivity; 
     import android.os.Bundle; 
     import android.util.Log; 
     import android.view.View; 

     public class MainActivity extends AppCompatActivity { 

      //1st Method 
      /*public void playmusic(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID","Id value is" + id); 
       String nameID; 
       nameID = view.getResources().getResourceEntryName(id); 
       Log.i("ID","Id value is" + nameID); 
       int myMusic = getResources().getIdentifier(nameID,"raw","com.example.star.spanishnumbers"); 

       MediaPlayer mediaplayer = MediaPlayer.create(this, myMusic); 
       mediaplayer.start(); 
       mediaplayer.reset(); 
       mediaplayer.release(); 
      }*/ 

      //2nd Method ~ working but have some issues unable to clear that issue 
      public void playone(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer= MediaPlayer.create(this,R.raw.one); 
       mediaPlayer.start(); 


      } 
      public void playtwo(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.two); 
       mediaPlayer.start(); 

      } 
      public void playthree(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.three); 
       mediaPlayer.start(); 

      } 
      public void playfour(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.four); 
       mediaPlayer.start(); 

      } 
      public void playfive(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.five); 
       mediaPlayer.start(); 

      } 
      public void playsix(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer= MediaPlayer.create(this,R.raw.six); 
       mediaPlayer.start(); 

      } 
      public void playseven(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.seven); 
       mediaPlayer.start(); 

      } 
      public void playeight(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.eight); 
       mediaPlayer.start(); 

      } 
      public void playnine(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.nine); 
       mediaPlayer.start(); 

      } 
      public void playten(View view) 
      { 
       int id = view.getId(); 
       Log.i("ID", "ID value is " + id); 

       MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.ten); 
       mediaPlayer.start(); 

      } 

      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main); 
      } 
     } 

Code mise en page

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.star.spanishnumbers.MainActivity"> 

    <GridLayout 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="8dp" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     android:layout_marginStart="8dp" 
     android:layout_marginEnd="8dp"> 

     <Button 
      android:id="@+id/one" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="0" 
      android:layout_columnWeight="1" 
      android:layout_row="0" 
      android:layout_rowWeight="1" 
      android:background="@drawable/one" 
      android:onClick="playmusic" 
      android:text="@string/one" 
      tools:text="@string/one" /> 

     <Button 
      android:id="@+id/two" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="1" 
      android:layout_columnWeight="1" 
      android:layout_row="0" 
      android:layout_rowWeight="1" 
      android:background="@drawable/two" 
      android:onClick="playmusic" 
      android:text="@string/two" 
      tools:text="@string/two" /> 

     <Button 
      android:id="@+id/three" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="0" 
      android:layout_columnWeight="1" 
      android:layout_row="1" 
      android:layout_rowWeight="1" 
      android:background="@drawable/three" 
      android:onClick="playmusic" 
      android:text="@string/three" 
      tools:text="@string/three" /> 

     <Button 
      android:id="@+id/four" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="1" 
      android:layout_columnWeight="1" 
      android:layout_row="1" 
      android:layout_rowWeight="1" 
      android:background="@drawable/four" 
      android:onClick="playmusic" 
      android:text="@string/four" 
      tools:text="@string/four" /> 

     <Button 
      android:id="@+id/five" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="0" 
      android:layout_columnWeight="1" 
      android:layout_row="2" 
      android:layout_rowWeight="1" 
      android:background="@drawable/five" 
      android:onClick="playmusic" 
      android:text="@string/five" 
      tools:text="@string/five" /> 

     <Button 
      android:id="@+id/six" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="1" 
      android:layout_columnWeight="1" 
      android:layout_row="2" 
      android:layout_rowWeight="1" 
      android:background="@drawable/six" 
      android:onClick="playmusic" 
      android:text="@string/six" 
      tools:text="@string/six" /> 

     <Button 
      android:id="@+id/seven" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="0" 
      android:layout_columnWeight="1" 
      android:layout_row="3" 
      android:layout_rowWeight="1" 
      android:background="@drawable/one" 
      android:onClick="playmusic" 
      android:text="@string/seven" 
      tools:text="@string/seven" /> 

     <Button 
      android:id="@+id/eight" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="1" 
      android:layout_columnWeight="1" 
      android:layout_row="3" 
      android:layout_rowWeight="1" 
      android:background="@drawable/four" 
      android:onClick="playmusic" 
      android:text="@string/eight" 
      tools:text="@string/eight" /> 

     <Button 
      android:id="@+id/nine" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="0" 
      android:layout_columnWeight="1" 
      android:layout_row="4" 
      android:layout_rowWeight="1" 
      android:background="@drawable/six" 
      android:onClick="playmusic" 
      android:text="@string/nine" 
      tools:text="@string/nine" /> 

     <Button 
      android:id="@+id/ten" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_column="1" 
      android:layout_columnWeight="1" 
      android:layout_row="4" 
      android:layout_rowWeight="1" 
      android:background="@drawable/three" 
      android:onClick="playmusic" 
      android:text="@string/ten" 
      tools:text="@string/ten" /> 
    </GridLayout> 
</android.support.constraint.ConstraintLayout> 
+0

S'il vous plaît travailler sur votre Java Fundamentals. Commencez par travailler sur la logique que vous utilisez. Si vous avez 50 boutons, aurez-vous 50 méthodes différentes pour jouer de la musique? Pour votre problème voir ici https://stackoverflow.com/questions/22352263/playing-and-pausing-media-player-on-same-button-using-only-1-media-player-instan –

+0

regardez ma première méthode c'est une méthode unique pour tous les boutons mais ne fonctionne pas – Rakesh

+0

partager le code de disposition –

Répondre

0

Android MediaPlayer est gourmand en ressources. Si vous ne nettoyez pas MadiaPlayer après l'avoir utilisé, votre application ne peut lire qu'une douzaine de fichiers audio ou vidéo ou moins. Comme la référence de MediaPlayer est une variable locale, elle ne peut pas être nettoyée.

Changez votre référence mediaPlayer en valeur déposée Libérez votre mediaPlayer après utilisation. (En utilisant onCompleteListener par exemple) N'oubliez pas de libérer lorsque votre contexte est détruit. (Activité, service .. etc)

public void playthree(View view) 
{ 
    int id = view.getId(); 
    Log.i("ID", "ID value is " + id); 

    MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.three); 
    mediaPlayer.start(); 
    // mediaPlayer can not be released. 
}