The following code works:
require 'sdl'
SDL.init(SDL::INIT_AUDIO)
mixer = SDL::Mixer.open(22050, SDL::Mixer::DEFAULT_FORMAT, 1, 1024)
wave = SDL::Mixer::Wave.load("sample.wav")
SDL::Mixer.play_channel(0, wave, 0)
while SDL::Mixer::play?(0)
sleep 1
end
But the following code fails:
require 'sdl'
SDL.init(SDL::INIT_AUDIO)
mixer = SDL::Mixer.open(22050, SDL::Mixer::DEFAULT_FORMAT, 1, 1024)
stream = File.open("sample.wav")
wave = SDL::Mixer::Wave.load_from_io(stream)
SDL::Mixer.play_channel(0, wave, 0)
while SDL::Mixer::play?(0)
sleep 1
end
Output:
$ ruby soundtest.rb
soundtest.rb:6:in `load_from_io': cannot seek backward (SDL::Error)
from soundtest.rb:6
|