I'm using the oto library to play audio in a Go application, but I've noticed that calling Player.Play() appears to block the calling goroutine until the entire audio finishes playing (or at least for a significant duration). According to the documentation, Play() should be non-blocking and asynchronous, returning immediately while playback happens in the background. However, in illegal case, it seems to halt execution unexpectedly, for example, passing illegal audio stream.
https://github.com/mattn/nhk-radio/blob/418448c60efbd6d5ce735db86235cc8cd9092dbe/main.go#L539-L545
OS: Windows 11 Home
Go version: go version go1.25.0 windows/amd64