對於我的應用程序,我需要在Android手機上錄製來自MIC的音頻,並通過TCP將其發送到另一個需要播放的android手機。Android:通過TCP套接字流式音頻
我使用的是AudioRecord
和AudioTrack
類。這對於文件非常有用 - 使用DataOutputStream
將文件寫入文件,並使用DataInputStream
從文件中讀取。
但是,如果我從套接字而不是文件獲得相同的流,並嘗試寫入它,我會得到一個異常。
我不知道什麼可能會出錯。任何幫助將不勝感激。
編輯:問題是相同的,即使我嘗試使用較大的緩衝區大小(65535字節,160000字節)。
這是代碼:
記錄:
int bufferSize = AudioRecord.getMinBufferSize(11025, , AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioRecord recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
byte[] tempBuffer = new byte[bufferSize];
recordInstance.startRecording();
while (/*isRecording*/) {
bufferRead = recordInstance.read(tempBuffer, 0, bufferSize);
dataOutputStreamInstance.write(tempBuffer);
}
上面得到的是DataOutputStream爲:
BufferedOutputStream buff = new BufferedOutputStream(out1); //out1 is the socket's outputStream
DataOutputStream dataOutputStreamInstance = new DataOutputStream (buff);
可否請你看看,讓我知道它是什麼我可能在這裏做錯了?
感謝,
您是否設法將音頻文件發送到其他設備? – B770 2013-08-07 09:40:54