### Home Classes Methods

### In Files

- lib/rubygame/deprecated_mixer.rb

### Parent

Object

### Methods

- ::load_audio
- ::new
- #fade_in
- #fade_out
- #fading?
- #jump
- #pause
- #paused?
- #play
- #playing?
- #resume
- #rewind
- #stop
- #volume
- #volume=

### Files

- CREDITS
- LICENSE
- NEWS
- README
- ROADMAP
- custom_sdl_load_paths.rdoc
- getting_started.rdoc
- keyboard_symbols.rdoc
- macosx_install.rdoc
- managing_framerate.rdoc
- surface_palettes.rdoc
- windows_install.rdoc

### Class/Module Index

Quicksearch

- Rubygame
- Rubygame::ActiveEvent
- Rubygame::Clock
- Rubygame::Color
- Rubygame::Color::ColorBase
- Rubygame::Color::ColorHSL
- Rubygame::Color::ColorHSV
- Rubygame::Color::ColorRGB
- Rubygame::Color::Palette
- Rubygame::Event
- Rubygame::EventActions
- Rubygame::EventActions::BlockAction
- Rubygame::EventActions::MethodAction
- Rubygame::EventActions::MultiAction
- Rubygame::EventHandler
- Rubygame::EventHandler::HasEventHandler
- Rubygame::EventHook
- Rubygame::EventQueue
- Rubygame::EventTriggers
- Rubygame::EventTriggers::AndTrigger
- Rubygame::EventTriggers::AttrTrigger
- Rubygame::EventTriggers::BlockTrigger
- Rubygame::EventTriggers::InstanceOfTrigger
- Rubygame::EventTriggers::KeyPressTrigger
- Rubygame::EventTriggers::KeyReleaseTrigger
- Rubygame::EventTriggers::KindOfTrigger
- Rubygame::EventTriggers::MouseMoveTrigger
- Rubygame::EventTriggers::MousePressTrigger
- Rubygame::EventTriggers::MouseReleaseTrigger
- Rubygame::EventTriggers::OrTrigger
- Rubygame::EventTriggers::TickTrigger
- Rubygame::EventTriggers::YesTrigger
- Rubygame::Events
- Rubygame::Events::ClockTicked
- Rubygame::Events::InputFocusGained
- Rubygame::Events::InputFocusLost
- Rubygame::Events::JoystickAxisMoved
- Rubygame::Events::JoystickBallMoved
- Rubygame::Events::JoystickButtonEvent
- Rubygame::Events::JoystickButtonPressed
- Rubygame::Events::JoystickButtonReleased
- Rubygame::Events::JoystickHatMoved
- Rubygame::Events::KeyPressed
- Rubygame::Events::KeyReleased
- Rubygame::Events::KeyboardEvent
- Rubygame::Events::MouseButtonEvent
- Rubygame::Events::MouseFocusGained
- Rubygame::Events::MouseFocusLost
- Rubygame::Events::MouseMoved
- Rubygame::Events::MousePressed
- Rubygame::Events::MouseReleased
- Rubygame::Events::QuitRequested
- Rubygame::Events::WindowExposed
- Rubygame::Events::WindowMinimized
- Rubygame::Events::WindowResized
- Rubygame::Events::WindowUnminimized
- Rubygame::ExposeEvent
- Rubygame::Ftor
- Rubygame::GL
- Rubygame::Hotspot
- Rubygame::JoyAxisEvent
- Rubygame::JoyBallEvent
- Rubygame::JoyDownEvent
- Rubygame::JoyHatEvent
- Rubygame::JoyUpEvent
- Rubygame::Joystick
- Rubygame::Key
- Rubygame::KeyDownEvent
- Rubygame::KeyUpEvent
- Rubygame::MailQueue
- Rubygame::MediaBag
- Rubygame::Mixer
- Rubygame::Mixer::Music
- Rubygame::Mixer::Sample
- Rubygame::Mouse
- Rubygame::MouseDownEvent
- Rubygame::MouseMotionEvent
- Rubygame::MouseUpEvent
- Rubygame::Music
- Rubygame::NamedResource
- Rubygame::NamedResource::NamedResourceClassMethods
- Rubygame::QuitEvent
- Rubygame::Rect
- Rubygame::ResizeEvent
- Rubygame::SDLError
- Rubygame::SFont
- Rubygame::Screen
- Rubygame::Sound
- Rubygame::Sprites
- Rubygame::Sprites::DepthSortGroup
- Rubygame::Sprites::Group
- Rubygame::Sprites::LimitGroup
- Rubygame::Sprites::Sprite
- Rubygame::Sprites::UpdateGroup
- Rubygame::Surface
- Rubygame::TTF

No matching classes.

# Rubygame::Mixer::Music

*NOTE:* This class is DEPRECATED and will be removed in Rubygame 3.0. Please use the Rubygame::Music class instead.

The Music class is used for playing music from a file. It supports WAVE, MOD, MIDI, OGG, and MP3 files. There are two important differences between Music and Sample:

1. Music streams the music from disk, which means it can start faster and uses less memory than Sample, which loads the entire file into memory. This is especially important for music files, which are often several minutes long.

2. There can only be one Music instance playing at once, while there can be many Samples playing at once. If you play a second Music while one is already playing, the first one will be stopped. See play.

### Public Class Methods

load_audio() click to toggle source

*NOTE:* Rubygame::Mixer::Music is DEPRECATED and will be removed in Rubygame 3.0. Please use the Rubygame::Music class instead.

Load music from a file. Supports WAV, MOD, MIDI, OGG, and MP3 formats.

Raises SDLError if the music could not be loaded.

    # File lib/rubygame/deprecated_mixer.rb, line 331
    def self.load_audio
      Rubygame.deprecated( "Rubygame::Mixer::Music", "3.0" )

      music = SDL::Mixer.LoadMUS( filename )

      if( music.pointer.null? )
        raise( Rubygame::SDLError,
               "Error loading audio music from file `%s': %s"%
               [filename, SDL.GetError()] )
      end

      return new( music )
    end

new click to toggle source

    # File lib/rubygame/deprecated_mixer.rb, line 351
    def initialize( struct=nil )
      @struct = struct
    end

### Public Instance Methods

fade_in( fade_time, repeats=0, start=0 ) click to toggle source

Play the music, fading in and repeating a certain number of times. See also play.

Raises SDLError if something goes wrong.

fade_time | Time in seconds for the fade-in effect to complete.
repeats | Number of extra times to play through the music. -1 plays the music forever until it is stopped. Defaults to 0, play only once (no repeats).
start | Time to start from, in seconds since the beginning. Defaults to 0, the beginning of the song. Non-zero values only work for OGG and MP3; other music types will raise SDLError.

    # File lib/rubygame/deprecated_mixer.rb, line 495
    def fade_in( fade_time, repeats=0, start=0 )
      fade_time *= 1000 # convert to milliseconds
      repeats = (repeats or 0)
      start   = (start   or 0)

      # Adjust so repeats means the same as it does for Samples
      repeats += 1 if repeats > -1

      result =
        if( start == 0 )
          SDL::Mixer.FadeInMusic( @struct, repeats, fade_time )
        else
          SDL::Mixer.FadeInMusicPos( @struct, repeats, fade_time, start )
        end

      if( result < 0 )
        raise Rubygame::SDLError, "Error fading in music: #{SDL.GetError()}"
      end

      return self
    end

fade_out( fade_time ) click to toggle source

Gradually fade the music to silence over `fade_length` seconds. After the fade is complete, the music will be automatically stopped.

Raises SDLError if something goes wrong.

fade_time | Time until the music is totally silent, in seconds.

    # File lib/rubygame/deprecated_mixer.rb, line 525
    def fade_out( fade_time )
      fade_time *= 1000 # convert to milliseconds

      result = SDL::Mixer.FadeOutMusic( fade_time )

      if( result < 0 )
        raise Rubygame::SDLError, "Error fading out music: #{SDL.GetError()}"
      end
    end

fading?( direction=nil ) click to toggle source

True if the music is fading in or out (or either). You can specify `direction` as :in/:out to check only fading in/out; otherwise, it will return true if it's fading either way.

direction | :in, :out, or nil if you don't care which.
Returns | true if the music is fading in the given direction.

    # File lib/rubygame/deprecated_mixer.rb, line 543
    def fading?( direction=nil )
      case direction
      when :in
        return (SDL::Mixer.FadingMusic() == SDL::Mixer::FADING_IN)
      when :out
        return (SDL::Mixer.FadingMusic() == SDL::Mixer::FADING_OUT)
      else
        return (SDL::Mixer.FadingMusic() != SDL::Mixer::NO_FADING)
      end
    end

jump( time ) click to toggle source

Jump to a certain time in the music. Only works when music is playing or paused (but not stopped). Only works for OGG and MP3 files.

Raises SDLError if something goes wrong, or if the music type does not support setting the position.

time | Time to jump to, in seconds from the beginning.

    # File lib/rubygame/deprecated_mixer.rb, line 429
    def jump( time )
      case SDL::Mixer.GetMusicType(nil)
      when SDL::Mixer::MUS_OGG, SDL::Mixer::MUS_MP3

        SDL::Mixer::RewindMusic() # Needed for MP3, and OK with OGG

        result = SDL::Mixer.SetmusicPosition( time )

        if( result < 0 )
          raise( Rubygame::SDLError,
                 "Error jumping to time in music: #{SDL.GetError()}" )
        end

      when SDL::Mixer::MUS_NONE
        raise Rubygame::SDLError, "Cannot jump when no music is playing."
      else
        raise Rubygame::SDLError, "Music type does not support jumping."
      end
    end

pause() click to toggle source

Pause playback of the playing music. You can later resume playback from the point where you paused. Safe to use on already-paused music. See also play_music.

    # File lib/rubygame/deprecated_mixer.rb, line 394
    def pause
      SDL::Mixer::PauseMusic()
      return self
    end

paused?() click to toggle source

Returns true if the music is currently paused.

    # File lib/rubygame/deprecated_mixer.rb, line 459
    def paused?
      return SDL::Mixer::PausedMusic()
    end

play( repeats=0 ) click to toggle source

Play music, repeating a certain number of extra times. If any music was already playing, that music will be stopped first, and this music will start.

Raises SDLError if something goes wrong.

This method takes these arguments:

repeats | how many extra times to play the music. Can be -1 to repeat forever until it is stopped.

    # File lib/rubygame/deprecated_mixer.rb, line 366
    def play( repeats=0 )
      # Adjust so repeats means the same as it does for Samples
      repeats += 1 if repeats > -1

      result = SDL::Mixer.PlayMusic( @struct, repeats )

      if( result < 0 )
        raise Rubygame::SDLError, "Error playing music: #{SDL.GetError()}"
      end

      return self
    end

playing?() click to toggle source

Returns true if the music is currently playing.

    # File lib/rubygame/deprecated_mixer.rb, line 452
    def playing?
      return SDL::Mixer::PlayingMusic()
    end

resume() click to toggle source

Resume playback of paused music from the point it was paused. Safe to use on already-playing music. See also play.

    # File lib/rubygame/deprecated_mixer.rb, line 404
    def resume
      SDL::Mixer::ResumeMusic()
      return self
    end

rewind() click to toggle source

Rewind the music to the start. This is safe to use on stopped, paused, and playing music. Only works for MOD, OGG, MP3, and MIDI (but not WAV).

    # File lib/rubygame/deprecated_mixer.rb, line 414
    def rewind
      SDL::Mixer::RewindMusic()
      return self
    end

stop() click to toggle source

Stop playback of music. See also play

    # File lib/rubygame/deprecated_mixer.rb, line 383
    def stop
      SDL::Mixer::HaltMusic()
      return self
    end

volume() click to toggle source

Returns the current volume level of the music. 0.0 is total silence, 1.0 is maximum volume.

    # File lib/rubygame/deprecated_mixer.rb, line 467
    def volume
      return (SDL::Mixer::VolumeMusic(-1).to_f / SDL::Mixer::MAX_VOLUME)
    end

volume=( new_volume ) click to toggle source

Sets the volume level of the music. 0.0 is total silence, 1.0 is maximum volume.

    # File lib/rubygame/deprecated_mixer.rb, line 475
    def volume=( new_volume )
      SDL::Mixer.VolumeMusic( (volume * SDL::Mixer::MAX_VOLUME).to_i )
      return new_volume
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.