seemingly working but thread is not gracefully dying

This commit is contained in:
minjaesong
2023-11-18 02:58:57 +09:00
parent a09397dbd6
commit 3238aa1981
4 changed files with 179 additions and 43 deletions

View File

@@ -96,6 +96,20 @@ class OpenALBufferedAudioDevice(
writeSamples(bytes!!, 0, numSamples * 2)
}
private fun interleave(f1: FloatArray, f2: FloatArray) = FloatArray(f1.size + f2.size) {
if (it % 2 == 0) f1[it / 2] else f2[it / 2]
}
/**
* @param samples multitrack
* @param numSamples number of samples per channel
*/
fun writeSamples(samples: List<FloatArray>) {
interleave(samples[0], samples[1]).let {
writeSamples(it, 0, it.size)
}
}
private fun audioObtainSource(isMusic: Boolean): Int {
val obtainSourceMethod = OpenALLwjgl3Audio::class.java.getDeclaredMethod("obtainSource", java.lang.Boolean.TYPE)
obtainSourceMethod.isAccessible = true