This commit is contained in:
zedoCN 2024-08-31 04:20:35 +08:00
parent aad1681994
commit fbf7e998b3
2 changed files with 12 additions and 3 deletions

View File

@ -4,9 +4,7 @@ import kotlinx.coroutines.runBlocking
import java.io.IOException import java.io.IOException
import java.io.InputStream import java.io.InputStream
import java.io.OutputStream import java.io.OutputStream
import java.net.InetSocketAddress
import java.net.Socket import java.net.Socket
import java.util.Arrays
import javax.sound.sampled.AudioFormat import javax.sound.sampled.AudioFormat
import javax.sound.sampled.AudioSystem import javax.sound.sampled.AudioSystem
import kotlin.system.measureTimeMillis import kotlin.system.measureTimeMillis
@ -64,7 +62,13 @@ fun mainClient() = runBlocking {
launch(Dispatchers.IO) { launch(Dispatchers.IO) {
while (true) { while (true) {
try { try {
if (`in`!!.available() > bufferIn.size * 2) {
`in`!!.skip(`in`!!.available().toLong())
continue
}
`in`!!.read(bufferIn, 0, bufferIn.size) `in`!!.read(bufferIn, 0, bufferIn.size)
sourceDataLine.write(bufferIn, 0, bufferIn.size) sourceDataLine.write(bufferIn, 0, bufferIn.size)
} catch (e: IOException) { } catch (e: IOException) {
e.printStackTrace() e.printStackTrace()

View File

@ -17,7 +17,6 @@ fun main() = runBlocking {
for (client in clientAudios) { for (client in clientAudios) {
if (!client.isConnected) { if (!client.isConnected) {
clientAudios.remove(client) clientAudios.remove(client)
println("现在是: $clientAudios")
continue continue
} }
client.read() client.read()
@ -64,6 +63,12 @@ class ClientAudio(var socket: Socket) {
fun read() { fun read() {
try { try {
if (`in`!!.available() > bufferIn.size * 2) {
`in`!!.skip(`in`!!.available().toLong())
Arrays.fill(mixSample, 0f)
return
}
`in`.read(buffer) `in`.read(buffer)
AudioConvert.convertShortByteToFloat(buffer, sample) AudioConvert.convertShortByteToFloat(buffer, sample)
Arrays.fill(mixSample, 0f) Arrays.fill(mixSample, 0f)