Я разрабатываю приложение, для которого требуется запись звука PCM 16 кГц/16 бит/моно (1 канал). Он отлично работает на Motorola ATRIX, но на HTC One запись по всему файлу прерывистая. Я думаю, это потому, что он все еще пытается записать в стерео, но пишет болванки для второго канала. Если я записываю в стерео, то работает отлично, но мне нужно в моно.
Кто-нибудь слышал об этой проблеме? Микширование трека из стерео в моно не вариант из-за нехватки времени.
private static final int RECORDER_SAMPLERATE = 16000;
private static final int RECORDER_CHANNELS = AudioFormat.CHANNEL_IN_MONO;
private static final int RECORDER_AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;
private void startRecording()
{
int bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING);
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING, bufferSize);
recorder.startRecording();
isRecording = true;
recordingThread = new Thread(new Runnable()
{
public void run()
{
try {
writeAudioDataToFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}, "AudioRecorder Thread");
recordingThread.start();
}