wav 형식으로 녹음 할 때 안드로이드에서 샘플 당 비트 수가 AudioRecord 객체의 16 비트에서 8 비트 (또는 다른 비트 전송률)로 어떻게 변경 될 수 있습니까?Android에서 AudioRecord의 비트율 변경
(여기에서 예를 들어 설명한 바와 같이 : Using AudioRecord with 8-bit encoding in android) :이 작동하지 않습니다
이private void WriteWaveFileHeader(
FileOutputStream out, long totalAudioLen,
long totalDataLen, long longSampleRate, int channels,
long byteRate) throws IOException {
byte[] header = new byte[44];
header[0] = 'R'; // RIFF/WAVE header
...header content...
header[32] = (byte) (2 * 16/8); // block align
header[33] = 0;
header[34] = (byte)RECORDER_BPP; // bits per sample, set to 8
...header content...
out.write(header, 0, 44);
}
제안 된 버전과 직접 작동하는 Android 8 비트 인코딩 간의 출력간에 차이가 있습니까? – user2212461
예, 'AudioFormat.ENCODING_PCM_8BIT'에서는 8 비트 값 0이 무음을 나타내고, 127은 최대 값이고 -128은 최소값을 나타냅니다. 내 코드의 "+128"은 웨이브 파일 형식에 맞도록이 값을 변경합니다. 읽기 후에 쓰기 전에 바이트를 처리하려면 wav 파일에 데이터를 저장하기 직전에 "+128"을 수행하는 것이 좋습니다. –