class Gosu::Sample

TODO ManageAudioFocus, when app loses, stop song TODO Raise a warning is the file could not be loaded

Public Class Methods

finalize(id) click to toggle source
# File lib/gosu_android/audio/audio.rb, line 95
def self.finalize(id)
  proc { @@pool.unload(id) }
end
new(window, filename) click to toggle source

Constructs a sample that can be played on the specified audio system and loads the sample from a file.

# File lib/gosu_android/audio/audio.rb, line 57
def initialize(window, filename)
  @window = window
  if not defined? @@pool
    @@pool = JavaImports::SoundPool.new(MAX_SAMPLES, JavaImports::AudioManager::STREAM_MUSIC, 0)
  end

  if(filename.class == Fixnum )
    @id = @@pool.load( @window.activity.getApplicationContext, filename, 1 )
  else
    @id = @@pool.load(filename, 1)
  end
  #Set finalize
  ObjectSpace.define_finalizer(self, self.class.finalize(@id))      
end

Public Instance Methods

play(volume = 1, speed = 1, looping = false) click to toggle source

Plays the sample without panning. param volume Can be anything from 0.0 (silence) to 1.0 (full volume). param speed Playback speed is only limited by the underlying audio library, and can accept very high or low values. Use 1.0 for normal playback speed.

# File lib/gosu_android/audio/audio.rb, line 78
def play(volume = 1, speed = 1, looping = false)
  if looping == false
    @stream_id = @@pool.play(@id, volume, volume, 1, 0, 1.0)
  else
    @stream_id = @@pool.play(@id, volume, volume, 1, 1, 1.0)
  end
end
play_pan(pan = 0, volume = 1, speed = 1, looping = false) click to toggle source

TODO Pan is not supported so it is ignored

# File lib/gosu_android/audio/audio.rb, line 87
def play_pan(pan = 0, volume = 1, speed = 1, looping = false)
  if looping == false
    @stream_id = @@pool.play(@id, volume, volume, 1, 0, 1.0)
  else
    @stream_id = @@pool.play(@id, volume, volume, 1, 1, 1.0)
  end
end