使用這種配置:在音頻數據
private int audioSource = MediaRecorder.AudioSource.MIC;
private static int sampleRateInHz = 48000;
private static int channelConfig = AudioFormat.CHANNEL_IN_STEREO;
private static int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
的數據如下。
leftChannel data: [0,1],[4,5]...
rightChannel data: [2,3],[6,7]...
所以你需要分離數據。
readSize = audioRecord.read(audioShortData, 0, bufferSizeInBytes);
for(int i = 0; i < readSize/2; i = i + 2)
{
leftChannelAudioData[i] = audiodata[2*i];
leftChannelAudioData[i+1] = audiodata[2*i+1];
rightChannelAudioData[i] = audiodata[2*i+2];
rightChannelAudioData[i+1] = audiodata[2*i+3];
}
希望這有幫助。
唐幾乎100%的設備只有一個麥克風?我希望你需要插入一個特殊的立體聲麥克風來實際獲得立體聲輸入。 – Tenfour04
我的手機是Nexus 4,它有2個麥克風。實際上,我還在manifest.xml文件中添加了允許進行立體聲錄製的權限。 – Neetha
@ Tenfour04:設備擁有多個麥克風相當普遍。雖然他們的主要動機是噪音消除,但也可以將它們用於多聲道錄音。當我在索尼移動音頻團隊工作時,幾乎所有2011年以後開始工作的手機都支持立體聲錄音。 – Michael