2012-04-11 16 views
1

私は音楽アプリケーションを開発しています。MusicPlayer一時停止と開始から開始

私はプレイヤーを一時停止したいと思います。私が再開のために行くと、そのポイントから開始されます。

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

は私が一時停止と停止ボタンを使用して再生したいです。 私はそれをコーディングしましたが、あなたが知っているように私は完璧なものを得られませんでした。だから どうすれば再生や一時停止のような操作をすることができますか?

答えて

2

静的な音楽ファサードを取り除く。あなたが実際にプレイすることができ、実際の自分の活動のMediaPlayerの、それは一度だけ(のonCreate)

  • を再生すると、ボタンがmediaPlayer.isPlaying(と
  • チェックをクリックされたときに一時停止するためにそれを置く

    • インスタンス化)を使用しますか、プレーヤーを一時停止する。このオブジェクトを使用するときに尊重する状態図があります。詳細についてはjavadocを参照し、特定の状態からの遷移を許可してください。
  • 0

    次を使用し、その後、 "プライベートint型currentPosition" のようなローカル変数を作成します。

    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(); 
         } 
        }); 
    
    関連する問題