Привет, парень, я реализовал голосовой вызов в android, и я играю потоковый аудио-байт со звуковой дорожкой, используя следующий код
track = new AudioTrack(AudioManager.STREAM_VOICE_CALL, SAMPLE_RATE, AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT, BUF_SIZE, AudioTrack.MODE_STREAM);
Thread receiveThread = new Thread(() -> {
track.play();
try {
// Define a socket to receive the audio
byte[] buf = new byte[BUF_SIZE_AUDIO];
while (speakers) {
// Play back the audio received from packets
DatagramPacket packet = new DatagramPacket(buf, BUF_SIZE_AUDIO);
SocketSingleton.socket.receive(packet);
String dataReceive = new String(packet.getData());
dataReceive = dataReceive.substring(0, 4);
if (dataReceive.equals("END:")) {
endCall(true);
} else {
Log.i(LOG_TAG, "Packet received: " + packet.getLength());
track.write(packet.getData(), 0, BUF_SIZE_AUDIO);
}
}
track.stop();
track.flush();
track.release();
} catch (SocketException e) {
Log.e(LOG_TAG, "SocketException: " + e.toString());
speakers = false;
} catch (IOException e) {
Log.e(LOG_TAG, "IOException: " + e.toString());
speakers = false;
}
});
, но я хочу переключить динамик динамика в нормальное реальное время, не могли бы вы пожалуйста, помогите мне исправить это