Module: AudioPlayback

Defined in:
lib/audio-playback.rb,
lib/audio-playback/file.rb,
lib/audio-playback/sound.rb,
lib/audio-playback/device.rb,
lib/audio-playback/playback.rb,
lib/audio-playback/commandline.rb,
lib/audio-playback/device/output.rb,
lib/audio-playback/device/stream.rb,
lib/audio-playback/playback/frame.rb,
lib/audio-playback/playback/mixer.rb,
lib/audio-playback/playback/frame_set.rb,
lib/audio-playback/playback/stream_data.rb

Overview

Play audio files

Defined Under Namespace

Modules: Commandline, Device, Playback Classes: File, Sound

Constant Summary collapse

VERSION =
"0.0.6"

Class Method Summary collapse

Class Method Details

.ensure_initializedBoolean

Ensure that the audio system is initialized

Returns:

  • (Boolean)


52
53
54
# File 'lib/audio-playback.rb', line 52

def self.ensure_initialized
  @initialized ||= FFI::PortAudio::API.Pa_Initialize
end

.list_devicesArray<String>

List the available audio output devices

Returns:

  • (Array<String>)


46
47
48
# File 'lib/audio-playback.rb', line 46

def self.list_devices
  Device::Output.list
end

.play(file_paths, options = {}) ⇒ Object

Convenience method to play an audio file

Parameters:

  • file_paths (Array<::File>, Array<String>, ::File, String)
  • options (Hash) (defaults to: {})

Options Hash (options):

  • :buffer_size (Fixnum)

    Buffer size in bytes. Defaults to 4096

  • :channels (Array<Fixnum>, Fixnum) — default: or: :channel

    Output audio to the given channel(s). Eg ‘:channels => [0,1]` will direct the audio to channels 0 and 1. Defaults to use all available channels

  • :latency (Float)

    Latency in seconds. Defaults to use the default latency for the selected output device

  • :logger (IO)

    Logger object

  • :output_device (Fixnum, String) — default: or: :output

    Output device id or name



37
38
39
40
41
42
# File 'lib/audio-playback.rb', line 37

def self.play(file_paths, options = {})
  sounds = Array(file_paths).map { |path| Sound.load(path, options) }
  requested_device = options[:output_device] || options[:output]
  output = Device::Output.by_name(requested_device) || Device::Output.by_id(requested_device) || Device.default_output
  Playback.play(sounds, output, options)
end