2009-09-17 7 views

답변

18

녹음 및 모니터링 용 : 녹음기 활동을 사용할 수 있습니다.

Intent recordIntent = new Intent(
       MediaStore.Audio.Media.RECORD_SOUND_ACTION); 
      startActivityForResult(recordIntent, REQUEST_CODE_RECORD); 

, 입력 모니터를 포함 오디오를 녹음 오픈 소스에서는 Ringdroid 프로젝트 다운로드하는 방법에 대한 완벽한 작업 예를 들어 : 스크린 샷에서 https://github.com/google/ringdroid

봐 당신은거야 다음은 코드의 조각이다 모니터를보십시오.

오디오를 고품질로 만들기 위해서는 더 좋은 마이크가 필요합니다. 내장 된 마이크는 너무 많이 캡처 할 수 있습니다 (그다지 좋지 않습니다). 다시 한번, ringdroid 프로젝트를보고 거기에서 몇 가지 정보를 수집하십시오. 이 시점에서 사운드를 향상시키는 정규화 및 증폭 루틴을 구현할 수 있습니다.

+0

무엇이 REQUEST_CODE_RECORD입니까? –

+0

onActivityResult()에 대한 요청에서 어떤 결과가 반환되는지를 결정하는 데 사용하는 로컬 상수입니다. –

30

안드로이드에서 오디오 품질이 떨어지는 큰 이유는 MediaRecorder 클래스 (AMR-NB 코덱)에서 사용하는 코덱입니다. 그러나 AudioRecord 클래스를 통해 압축되지 않은 오디오에 액세스하고이를 파일에 직접 기록 할 수 있습니다.

Rehearsal Assistant app은 압축되지 않은 오디오를 WAV 파일로 저장하기 위해 수행합니다. RehearsalAudioRecord 클래스 소스 코드를 살펴보십시오.

RehearsalAudioRecord 클래스도 getMaxAmplitude 메서드를 제공합니다.이 메서드는 마지막으로 메서드를 호출 한 이후의 최대 오디오 수준을 감지하는 데 사용할 수 있습니다 (MediaRecorder에서도이 메서드를 제공함).

+0

안녕하세요, Stjepan Rajko, 리허설 길잡이 앱에서 org.urbanstew.VolumeEnvelopeView를 찾을 수 없습니다. 어디 있는지 말해 줄 수 있습니까? – pengwang

+0

다른 코덱도 Android에서 사용할 수 있습니다. http://developer.android.com/reference/android/media/MediaRecorder.AudioEncoder.html#DEFAULT –