2

PCM オーディオを 16khz/16bits/mono (1 チャンネル) で録音する必要があるアプリを開発しています。Motorola ATRIX では完全に動作しますが、HTC One ではファイル全体で記録が途切れます。まだステレオで録音しようとしているのに、2 番目のチャンネルにブランクを書き込んでいるためだと思います。ステレオで録音するとうまくいきますが、モノラルで録音する必要があります。

これが問題だと聞いた人はいますか?ステレオからモノへのトラックのミキシングは、時間の制約によりオプションではありません。

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();
}
4

1 に答える 1