2013-05-17 3 views
0

Я создаю аудиомагнитофон. При повороте устройства звук будет автоматически сохранен. Как я могу избежать этого? Я использую Android 4.1.1 на устройстве.Перезапуск аудиомагнитофона

private MediaRecorder mRecorder = null; 
    private static final String LOG_TAG = "MediaAudioCapture"; 
    ImageButton button_audio_button = (ImageButton) findViewById(R.id.audio_button); 
     button_audio_button.setOnClickListener(new OnClickListener() { 
     public void onClick(View record_button) { 
     ImageButton audio_button = (ImageButton) record_button; 
     if (!started_note_recording) { 
     if (!started_recording) { 
      startRecording(); 
      audio_button.setImageResource(R.drawable.audio_red); 
     } else { 
     stopRecording(); 
     audio_button.setImageResource(R.drawable.audio); 
     } 
     } 
     } 
    }); 
    private void startRecording() { 
    mRecorder = new MediaRecorder(); 
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    mRecorder.setOutputFile(output.getAbsolutePath()); 
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
    ImageButton button_audio_button = (ImageButton)findViewById(R.id.audio_button); 
    button_audio_button.setImageResource(R.drawable.audio); 
    } 
    } 
    }); 
    try { 
     mRecorder.prepare(); 
    } catch (IOException e) { 
    Log.e(LOG_TAG, "prepare() failed"); 
    } 
    mRecorder.start(); 
    stopWatch.start(); 
    } 

ответ

0

Это потому что, когда вы вращаетесь, активность будет перезаряжаться. Вы можете установить ориентацию на портрет или изменить логику, чтобы сохранить состояние при вращении.

+0

Спасибо, что правильно знаете, что моя активность перезапускается. Это точно моя проблема. Но я хочу свою деятельность как в пейзаже, так и в портрете. так или иначе? – Amsheer

+0

Я не пробовал, но для воспроизведения видео или аудио мы можем попытаться сохранить его положение и при изменении ориентации продолжить его оттуда, но в вашем случае вы его записываете. вам придется передать объект рекордера, а затем вернуть его в действие и продолжить его. я не уверен в этом, потому что, когда вы вращаете действие, уничтожается и создается снова, поэтому на остановке вам нужно сохранить объект, а oncreate - отложить его и продолжить. если я получу дополнительную информацию об этом, я обновлю его с помощью – prvn

+0

Да, знаете ли вы, как получить позицию записи. и как я могу установить его снова без перерыва .. – Amsheer

Смежные вопросы