如何在Android上的背压下停止audiotrack和audiorecord播放?

时间:2014-06-13 11:00:32

标签: android activity-lifecycle android-audiorecord audiotrack

我有一个Activity A和Activity B。

Activity音频记录和播放执行并按下后退按钮录音轨和音频记录停止没有任何问题,但主要问题是Activity B有一个视频,当视频的镜头结束后会移回Activity A。

现在的问题是,当我按下后退按钮时,语音播放开始,意味着audiotrack和audiorecord不会停止。

我经历了活动生命周期,但我没有得到所需的Activity

public void onBackPressed() {

    super.onBackPressed(); 
    Intent intent = new Intent(); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.setAction(Intent.ACTION_MAIN); 
    startActivity(intent); 
    m_aboutOnyx.stop(); 
    timer.cancel(); 
    if(c_b_left == 1 || c_b_Right == 1 || c_b_fart ==1 || c_b_transperant ==1 ||c_b_food ==1 ||c_b_thunder ==1 || c_b_thumbs_up ==1){ 
        timer1.cancel();     
    } 
    isRecording = false; 
    track.stop(); 
    track.release(); 
    record.stop(); 
    record.release(); 
    this.finish(); 

}

2 个答案:

答案 0 :(得分:1)

单击后退按钮

时将调用此函数
@Override
public void onBackPressed() {
    super.onBackPressed();

   // Call your function to stop the audio recording here.
}

如果您想在活动进入后台时停止录音,则:

@Override
protected void onPause() {
    super.onPause();
   // Call your function to stop the recordinhg here.

}

了解更多活动lifecycle functions.

答案 1 :(得分:0)

尝试这样:

@Override
 public void onBackPressed() {
    if( mediaPlayer.isPlaying() ) {
      mediaPlayer.stop();
    }
    super.onBackPressed();
 }