go-sdl2-examples/examples/audio_wav_memory/audio_wav_memory.go

46 lines
741 B
Go

package main
import (
"io/ioutil"
"log"
"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/mix"
)
func main() {
if err := sdl.Init(sdl.INIT_AUDIO); err != nil {
log.Println(err)
return
}
defer sdl.Quit()
if err := mix.OpenAudio(44100, mix.DEFAULT_FORMAT, 2, 4096); err != nil {
log.Println(err)
return
}
defer mix.CloseAudio()
// Load entire WAV data from file
data, err := ioutil.ReadFile("../../assets/test.wav")
if err != nil {
log.Println(err)
}
// Load WAV from data (memory)
chunk, err := mix.QuickLoadWAV(data)
if err != nil {
log.Println(err)
}
defer chunk.Free()
// Play 4 times
chunk.Play(1, 3)
// Wait until it finishes playing
for mix.Playing(-1) == 1 {
sdl.Delay(16)
}
}