2017-08-22 10 views
-1

以下のコードについてのアドバイスが必要です。私は人々が再生ボタンをクリックすると、音楽が再生を開始し、人々が停止ボタンをクリックすると、音楽が再生を停止する単純なアプリケーションを作成しようとしている。私はこの2つのタスクの開始と停止に1つのボタンを使用しています。アンドロイドスタジオで再生停止ボタンをコーディングする方法

私は既にアンドロイドシミュレータでテストしていますが、このスタートアンドストップボタンは、私が望むように正しく動作しています。しかし、この問題はAPKファイルを作成してデバイスで再生したときに発生しました。ストップボタンは私が望むようには機能しません。停止ボタンを押すと、音楽は最初から再生を再開します。

この問題に関するご意見はありますか?ありがとうございました。

btn_playstop.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (btn_playstop.isPressed()) { 
       if (player.isPlaying()) { 
        player.stop(); 
        try { 
         player.prepare(); 
        } catch (IllegalStateException e) { 
         e.printStackTrace(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
        player.seekTo(0); 
        btn_playstop.setBackgroundResource(R.drawable.play); 
       } 
       else { 
        player.start(); 
        btn_playstop.setBackgroundResource(R.drawable.stop); 
       } 
      } 
     } 
    }); 

答えて

0

再生/停止ボタンを実現するには、このようにします。

btn_playstop.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (player != null && player.isPlaying()) { 
      player.stop(); 
      player.release(); 
      player = null; 
       try { 
       player.prepare(); 
       } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
       } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
       } 
       player.seekTo(0); //<---- This is to resume the player from a specified position. It is helpful for a pause button. You can remove it for a stop button. 
       btn_playstop.setBackgroundResource(R.drawable.play); 

     } 
     else {    
      player.start(); 
       btn_playstop.setBackgroundResource(R.drawable.stop); 
     } 
    } 

}); 

あなたはそれが指定した位置から再生を再開するためのものですと、停止ボタンのseekTo(Length)メソッドを呼び出す必要はありません。 setOnClickListenerを使用して既にボタンを呼び出しているので、if (btn_playstop.isPressed())も不要です。

+0

ありがとうございました。しかし、私が停止ボタンをクリックした後も音楽は引き続き再生されます。私がシミュレータを実行すると、すべて正常に見えます。しかし、一度私はデバイスを実行し、音楽はまだ再生されます。 –

+0

編集した回答を確認してください。実際のデバイスで問題が引き続き発生する場合は、別のデバイスでテストしてみてください。 – Abhi

+0

あなたのコードを試しましたが、アプリが突然閉じました。その間、私は 'player.stop()'の代わりに 'player.pause()'を使用します。ありがとう。 –