私のアプリでは、AndroidフォンでMICからのオーディオを録音し、TCP経由で他のAndroidフォンに送信する必要があります。そこで再生する必要があります。
私はクラスを使用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);
ご覧になって、ここで間違っている可能性があることを教えてください。
ありがとう、