2017-10-02 6 views
-1

나는 Gridlayout에 10 개의 버튼을 배치하고 모든 버튼에 할당 된 오디오 파일이있는 응용 프로그램을 만들고 있습니다 & 에있는 오디오를 재생해야합니다. 방법이 작동하지 않습니다 " 그래서 긴 코드를 작성하고"두 번째 방법 "을 만들었지 만 작동하지만 10 번 버튼을 클릭 한 다음 다시 첫 번째 버튼 소리를 클릭하면 작동하지 않습니까?10 개의 다른 버튼에서 소리가 나지 않음

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); 
      } 
     } 

레이아웃 코드

<?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

는 자바 기초 작업을하십시오. 먼저 사용중인 로직에 대해 작업하십시오. 50 개의 버튼이 있다면 50 가지 방법으로 음악을 재생할 수 있습니까? 문제는 https://stackoverflow.com/questions/22352263/playing-and-pausing-media-player-on-same-button-using-only-1-media-player-instan –

+0

에서 확인하십시오. 내 첫 번째 방법을 살펴보십시오. 그 모든 버튼에 대한 하나의 방법은 작동하지 않습니다 – Rakesh

+0

공유 레이아웃 코드 –

답변

0

안드로이드 MediaPlayer를이 자원 배고픈입니다. 사용 후 MadiaPlayer를 정리 (출시)하지 않으면 앱에서 오디오 또는 비디오를 12 개 이하로 재생할 수 있습니다. MediaPlayer 참조는 지역 변수이므로 청소할 수 없습니다.

mediaPlayer 참조를 파일 값으로 변경하십시오. 사용 후 MediaPlayer를 해제하십시오. 당신의 컨텍스트가 파괴 될 때 가 해제하는 것을 잊지 마십시오 (예를 들어, onCompleteListener 사용). (활동, 서비스 등등)

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. 
} 
관련 문제