2012-04-11 7 views
1

Ich entwickle Musik-Anwendung.MusicPlayer Pause und Start von ihm zum Start

Ich möchte den Player pausieren, und wenn ich für die Fortsetzung gehe, wird es von diesem Punkt aus starten.

Music.java

public class Music { 

    private static MediaPlayer mp = null; 

    public static void play(Context context,int resource){ 
     stop(context); 
     mp = MediaPlayer.create(context, resource); 
     mp.setLooping(true); 
     mp.start(); 
    } 

    static void stop(Context context) { 
     if(mp != null){ 
      mp.stop(); 
      mp.release(); 
      mp = null; 
     } 
    } 
} 

SMusicActivity

public class SMusicActivity extends Activity { 

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

     Button btnplay = (Button)findViewById(R.id.play); 
     btnplay.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       onResume(); 
      } 
     }); 

     Button btnstop = (Button)findViewById(R.id.pause); 
     btnstop.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       onPause(); 
      } 
     }); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     Music.play(this,R.raw.govind_bolo); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     Music.stop(this); 
    } 
} 

Ich möchte Stopp-Taste als Pause nutzen und spielen. Ich habe für das Codieren, aber wie Sie wissen, habe ich nicht perfekt bekommen .. So Wie kann ich Betrieb wie Play und Pause in diesem machen.

Antwort

2

Befreien Sie sich von Ihrer statischen Musikfassade. Verwenden Sie einen echten Mediaplayer in Ihrer Aktivität und

  • Instanciate es nur einmal (onCreate)
  • es ausdrückte zu spielen und Pause, wenn die Tasten
  • Prüfung mit mediaPlayer.isPlaying angeklickt werden(), die Sie tatsächlich spielen kann oder pausiere den Spieler. Es gibt ein Zustandsdiagramm, das bei der Verwendung dieses Objekts zu beachten ist, siehe javadoc für weitere Details zu Zuständen und zulässigen Übergängen von bestimmten Zuständen.
0

Erstellen Sie eine lokale Variable wie "private int current", dann verwenden Sie die folgenden Schritte aus:

btnplay.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      mp.seekTo(currentPosition); 
      onResume(); 
     } 
    }); 

    Button btnstop = (Button)findViewById(R.id.pause); 
    btnstop.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     currentPosition = mp.getCurrentPosition(); 
      onPause(); 
     } 
    });