Kotlin: Audiotrack Delay 2s Play hat keinen Einfluss
Posted: 14 Feb 2025, 14:04
Ich verwende Audiotrack, um eine Reihe von Audiodaten mit 2S -Verzögerung abzuspielen, hat jedoch keinen Einfluss, das Audio wird immer noch sofort abgespielt. Hier ist mein Code: < /p>
Ich drucke die Lesezeit von Buffer aus, es geht wirklich um 2er -Verzögerung beim Schreiben an Audiotrack. Ich habe keine Ahnung, was los ist.
Code: Select all
private fun delayOutput() {
CoroutineScope(Dispatchers.Default).launch {
withContext(Dispatchers.IO) {
delay(2000)
while (isRecording) {
val item = if (cachedBuffers.isNotEmpty()) {
cachedBuffers.first()
} else {
null
}
if (item != null) {
var writeRes: Int? = 0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (item is ShortArray) {
writeRes = audioTrack?.write(item, 0, item.size, WRITE_NON_BLOCKING)
}
}
cachedBuffers.removeAt(0)
}
delay(100)
}
}
}
}