2011-07-03 3 views
3

내 응용 프로그램에서 나는 마이크에서 입력을 녹음하고 특정 시점에서 (녹음이 진행되는 동안) 소리를 재생하고 있습니다. 나는 두 개의 휴대 전화에 테스트입니다동시에 오디오 녹음 및 오디오 재생

07-03 18:40:34.811: INFO/AudioHardwareALSA(2179): Output standby called!!. Turn off PCM device. 

을, 하나는 삼성 갤럭시 S입니다 : 지금 레코더가 기록에 "중지"(mrec.stop()는 여전히 사용할 수있다),이에 대한 로그 캣 항목이 될 것으로 보인다 하나는 삼성 갤럭시 3입니다. 갤럭시 S에서는 모든 것이 예상대로 작동합니다 (즉, 녹음은 여전히 ​​발생합니다). 스펙 외에도 두 전화기의 차이점은 갤럭시 S가 2.2.1이며 갤럭시 3 2.2 입니다. 즉, 메디 케어를 다시 초기화하는 것이 해결책이지만, 이는 원치 않는 애플리케이션을 방해하게 만듭니다. . 여기

더 많은 정보는 MediaPlayer를하고 mediarecorder이 설정 방법입니다 :

void Init() 
    { 
     mp = MediaPlayer.create(getContext(), R.raw.pop); 
     mrec = new MediaRecorder(); 
     mrec.setAudioSource(MediaRecorder.AudioSource.MIC); 
     mrec.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
     [..] 
     mrec.setOutputFile(audiofile.getAbsolutePath()); 
     mrec.prepare(); 
     mrec.start(); 
    } 

void Event() 
    { 
     mp.start(); 
    } 

이유는 무엇입니까 녹음 "정지"? 정류장을 멈출 수있는 방법이 있습니까? 이것이 바람직한 행동입니까? 무엇이 잘못되었는지 어떻게 알 수 있습니까?

팁을 주시면 감사하겠습니다.

+0

해결책을 얻었습니까? 나는 똑같은 일을하고 싶다! – QAMAR

+0

@Gerd 발견 한 경우에도 해결책을 제공해주십시오 .. –

답변

1

기본 기본 플레이어와 레코더를 사용해보십시오 ... AudioTrack 클래스 및 오디오 포맷과 같은 기타 관련 API를 통해 액세스 할 수 있습니다. 이들을 사용하여 pcm 오디오 데이터를 청크 또는 버퍼 (명시 적 바이트 배열)로 기록하고 재생할 수 있으며 루프를 사용하여 버퍼를 원하는 것에 모두 쓸 수 있습니다. 녹음 및 재생을 동시에 할 수 있습니다.

행운을 빌어 요.