использование телефонного менеджераpackage amurdroid.myapp17092; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { MediaPlayer mPlayer; Button startButton, pauseButton, stopButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPlayer=MediaPlayer.create(this, R.raw.ase); mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { stop(); } }); startButton = (Button) findViewById(R.id.start); pauseButton = (Button) findViewById(R.id.pause); stopButton = (Button) findViewById(R.id.stop); pauseButton.setEnabled(false); stopButton.setEnabled(false); PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int state, String incomingNumber) { if (state == TelephonyManager.CALL_STATE_RINGING) { if(mPlayer!=null){//check mp if(mPlayer.isPlaying()){ mPlayer.pause(); } } } else if(state == TelephonyManager.CALL_STATE_IDLE) { mPlayer.start(); } else if(state == TelephonyManager.CALL_STATE_OFFHOOK) { if(mPlayer!=null){//check mp if(mPlayer.isPlaying()){ mPlayer.pause(); } } } super.onCallStateChanged(state, incomingNumber); } };//end PhoneStateListener TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); if(mgr != null) { mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); } } private void stop(){ mPlayer.stop(); pauseButton.setEnabled(false); stopButton.setEnabled(false); try { mPlayer.prepare(); mPlayer.seekTo(0); startButton.setEnabled(true); } catch (Throwable t) { Toast.makeText(this, t.getMessage(), Toast.LENGTH_SHORT).show(); } } public void startAudio(View view){ mPlayer.start(); startButton.setEnabled(false); pauseButton.setEnabled(true); stopButton.setEnabled(true); } public void pauseAudio(View view){ mPlayer.pause(); startButton.setEnabled(true); pauseButton.setEnabled(false); stopButton.setEnabled(true); } public void stopAudio(View view){ stop(); } @Override public void onDestroy() { super.onDestroy(); if (stopButton.isEnabled()) { stop(); } } }