2012-02-01 59 views
0

我在Android開發中隨處看到音樂。我看過API,但我不明白。這是我的代碼:在Android上製作音頻開始/停止切換

Button b = (Button) findViewById(R.id.button1); 
b.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      MediaPlayer mp = MediaPlayer.create(Main.this, R.raw.track1); 
     mp.start(); 
     }   
}); 

我該如何改變它,以便當我再次按下相同的按鈕時,它會停止它?

回答

1
package com.my.testing; 

import android.R; 
import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class TestAndActivity extends Activity { 

    public MediaPlayer mp = null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button b = (Button) findViewById(R.id.button1); 
     b.setOnClickListener(new OnClickListener() { 

       @Override 
      public void onClick(View v) { 
       if (mp == null) { 
        mp = MediaPlayer.create(TestAndActivity.this, R.raw.track1); 
        mp.start(); 
       } else { 
        mp.stop(); 
        mp = null; 
       } 
      } 

     }); 
    } 
} 
+0

你有語法erro上其他預期{ – MrJoshFisher 2012-02-01 12:07:33

+0

仍然得到語法錯誤「語法錯誤的令牌其他{{預計」 – MrJoshFisher 2012-02-01 12:17:41

+0

權利讓它開始,現在停止一旦停止它不會再次開始 – MrJoshFisher 2012-02-01 12:24:10

0

爲了好玩,你可以在你的佈局定義在同一個地方兩個相同的按鈕,使這種伎倆......

 <ImageView 
    android:id="@+id/media_player12" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_alignParentLeft="true" 
android:layout_alignParentTop="true" 
    android:src="@drawable/media_player" />  
<ImageView 
android:id="@+id/mute12" 
android:layout_width="40dp" 
    android:layout_height="40dp" 
android:layout_alignParentLeft="true" 
android:layout_alignParentTop="true" 
android:visibility="gone" 
android:clickable="false" 
android:src="@drawable/mute" /> 

和代碼...

final ImageView s_on12 = (ImageView) findViewById(R.id.media_player12); 
    s_on12.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      mp.release(); 
      MediaPlayer mp = MediaPlayer.create(Main.this, R.raw.track1); 
    mp.start(); 
      final ImageView s_off12 = (ImageView) findViewById(R.id.mute12); 
      s_on12.setVisibility(View.GONE); 
      s_on12.setClickable(false); 
      s_off12.setVisibility(1); 
      s_off12.setClickable(true); 
      s_off12.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        mp.stop(); 

        s_on12.setVisibility(1); 
        s_on12.setClickable(true); 
        s_off12.setVisibility(View.GONE); 
        s_off12.setClickable(false); 
       } 
      }); 

     } 
    });