Сопрограмма — код ссылки в Head First Kotlin (драм-машина)

#kotlin-coroutines

Вопрос:

Привет, я хотел бы знать, почему звуковой файл воспроизводится только один раз, когда я комментирую

 Thread.sleep(100 * (part.length   1L))
 

из приведенного ниже кода

 fun main() {
    playBeats("x-x-x-x-x-x-", "toms.aiff")
}

fun playBeats(beats: String, file: String) {
    val parts = beats.split("x")
    println(parts)
    var count = 0
    for (part in parts) {
        count  = part.length   1
        if (part == "") {
            playSound(file)
        } else {
            Thread.sleep(100 * (part.length   1L))
            if (count < beats.length) {
                playSound(file)
            }
        }
    }
}
 

Комментарии:

1. Почему это помечено как котлин-сопрограммы? Похоже, здесь нет никакой сопрограммы

2. Что касается вашего вопроса, может быть, вы не можете воспроизвести звук слишком быстро после того, как уже сыграли его? (возможно, вам придется подождать, пока звук не закончит воспроизводиться). Что это за playSound API, который вы здесь используете? Это из библиотеки? Кроме того, возникают ли у вас какие-либо исключения при удалении Thread.sleep ?