2016-07-29 79 views
0
@Override 
protected void onResume() { 
    playOrderSound(); 
    super.onResume(); 
} 
private void playOrderSound(Context context){ 
    player= MediaPlayer.create(context, R.raw.order); 
    player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    player.start(); 
    player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
     @Override 
     public void onCompletion(MediaPlayer mp) { 
      player.reset(); 
      player.release(); 
     } 
    }); 
    player.setOnErrorListener(new MediaPlayer.OnErrorListener() { 
     @Override 
     public boolean onError(MediaPlayer mp, int what, int extra) { 
      player.start(); 
      return false; 
     } 
    }); 
} 

我把聲源放在原始目錄中,並使用mediaPlayer播放它。當服務器發送消息給我。我開始一個新的活動並播放mp3資源,但它'工作。 新的活動從lauchmode singletask開始。關於android mp3播放

+0

您必須設置'''player.prepare()'''或'''player.prepareAsync()'''以前'''開始()' '' –

+0

我通過創建創建播放器,所以如果我設置了準備(),發生了一些錯誤 – user5607014

+0

對不起,我會再次檢查 –

回答

0

試試這個打得好

@Override 
     protected void onResume() { 

      super.onResume(); 
      playOrderSound(Mainactivity.this); 



     } 

     private void playOrderSound(Context context){ 

      player = MediaPlayer.create(context, R.raw.acc); 
      player.start(); 


      player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
       @Override 
       public void onCompletion(MediaPlayer mp) { 
        player.reset(); 
        player.release(); 
       } 
      }); 
      player.setOnErrorListener(new MediaPlayer.OnErrorListener() { 
       @Override 
       public boolean onError(MediaPlayer mp, int what, int extra) { 
        player.start(); 
        return false; 
       } 
      }); 
     } 
     protected void onDestroy() { 
      super.onDestroy(); 


      player.stop(); 

      } 
+0

它的作品,當我刪除player.setOnCompletionLisener(),謝謝 – user5607014

+0

接受答案,如果這是幫助你 –