2011-01-23 7 views
20

AudioRecord 클래스를 사용하여 WAV 파일을 녹음하려고합니다. 문제는 원시 PCM 데이터 만 제공하기 때문에 파일에 기록하면 헤더 정보가 없으므로 모든 미디어 플레이어에서 재생되지 않습니다. 이 원시 데이터로 WAV 파일을 만들려면 어떻게해야합니까?Android SDK를 사용하여 원시 PCM 데이터에서 WAV 파일 만들기

또는 Android의 사운드를 WAV 파일 (또는 MP3)로 녹음하는 다른 방법이 있습니까?

오, WAV 또는 MP3 형식을 지원하지 않기 때문에 MediaRecorder can'y를 사용할 수 있습니다.

+0

아 ... 내가 해봤 mediarecord 클래스를 사용할 수 있습니다? – Atmocreations

답변

13

그래, 알아 냈어. 이 포스팅은 나를 돕는 중요한이었다 http://computermusicblog.com/blog/2008/08/29/reading-and-writing-wav-files-in-java

기본적으로, 다음 프로세스가 완료되면 내가 바이트 배열과 크기를 얻을 수 있습니다 가지 audiorecord에서 원시 PCM 데이터를 기록 할 수있는 ByteArrayOutputStream을 사용했다. 그런 다음 해당 데이터를 SampleRate, BitRate 및 Stereo/Mono 설정과 함께 사용하여 위의 링크에 따라 WAV 헤더를 만들 수 있습니다. 결과 파일은 완벽하게 작동합니다!

+1

어떻게 달성했는지 샘플 코드를 보여줄 수 있습니까? 비슷한 요구 사항이 있습니다 –

+1

코드에서 wavIo 파일을 어떻게 사용했는지 알려 줄 수 있습니까? 읽기와 저장이라는 두 가지 주요 방법이 있습니다. AudioRecord 클래스를 사용하여 안드로이드에 오디오를 녹음합니다. 그리고 바이트 단위로 데이터를 쓰고 있습니다 .. 제 오디오가 올바르게 레코딩되지 않아서 도움이 될 수 있습니까? – Scorpion

+4

링크가 만료되었습니다. 코드 또는 링크의 일부 청크를주세요. – WonderSoftwares

0

MediaRecorder.setOutputFormat()을 확인하면 녹음에 다른 컨테이너 형식을 설정할 수 있습니다. MediaRecorder.OutputFormat.MPEG_4 및 MediaRecorder.OutputFormat.THREE_GPP가 있습니다. RAW에 따라 형식 만 허용됩니다. setAudioEncoder (MediaRecorder.AudioEncoder.AMR_NB);

죄송하지만 MP3는 사용할 수 없습니다. 녹음에 mp3가 정말로 필요합니까? MP3의 반대편에있는 WAV는 컨테이너이고 형식이 아니고입니다. WAV는 모든 종류의 인코딩 형식 일 수 있습니다.

정확한 형식을 알고있는 한 원시 pcm 데이터 앞에 항상 WAV RIFF 헤더를 추가 할 수 있습니다. 어떻게 보이는지 확인하려면 여기를 확인하십시오. http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html

+0

출력 파일을 WAV (PCM 인코딩) 또는 MP3로 지정해야합니다. 업로드 할 서비스에이 서비스가 필요합니다. 그래서, 내가 볼 수있는 한, 나는 MediaRecorder를 사용할 수 없다. 나는 또한 – user496854

+0

입니다. 출력 파일이 WAV (PCM 인 코드) 또는 MP3이어야합니다. 업로드 할 서비스에이 서비스가 필요합니다. 그래서, 내가 볼 수있는 한, 나는 MediaRecorder를 사용할 수 없다. 나는 또한 저급 수준의 모든 것들에 상당히 나쁘다. 그래서 나는 스스로 자신을 창조하는 것이 얼마나 좋은지 모른다. 이 기능을 가진 Java 패키지가 있습니까? – user496854

+0

나는 이것을 실제로 발견했다. http://computermusicblog.com/blog/2008/08/29/reading-and-writing-wav-files-in-java. 그러나 바이트 40에 대한 데이터 청크의 크기를 얻는 방법을 모르겠습니다. 원시 PCM 데이터를 파일에 기록 했으므로 파일의 크기가됩니까? – user496854

-2

당신은 ... 당신이 사용하고있는 코드를 게시하시기 바랍니다 수있는 안드로이드 원시 PCM 데이터를 읽어

+3

왜? WAV 또는 MP3 출력을 지원하지 않습니다. – user496854