# OpenALStreamPlayer (Slick - The 2D Library)
Date: 2013-06-03

## org.newdawn.slick.openal
Class OpenALStreamPlayer

    java.lang.Object
      org.newdawn.slick.openal.OpenALStreamPlayer

    public class OpenALStreamPlayer

extends java.lang.Object

A generic tool to work on a supplied stream, pulling out PCM data and buffered it to OpenAL as required.

Author:
  Kevin Glass, Nathan Sweet <misc@n4te.com>, Rockstar play and setPosition cleanup

Field Summary
`static int` `BUFFER_COUNT` The number of buffers to maintain

Constructor Summary
`OpenALStreamPlayer(int source, java.lang.String ref)` Create a new player to work on an audio stream
`OpenALStreamPlayer(int source, java.net.URL url)` Create a new player to work on an audio stream

Method Summary
`boolean` `done()` Check if the playback is complete.
`float` `getPosition()` Return the current playing position in the sound
`java.lang.String` `getSource()` Get the source of this stream
`void` `play(boolean loop)` Start this stream playing
`boolean` `setPosition(float position)` Seeks to a position in the music.
`void` `setup(float pitch)` Setup the playback properties
`boolean` `stream(int bufferId)` Stream some data from the audio stream to the buffer indicates by the ID
`void` `update()` Poll the bufferNames - check if we need to fill the bufferNames with another section.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### BUFFER_COUNT

    public static final int BUFFER_COUNT

  The number of buffers to maintain

  See Also:
    Constant Field Values

Constructor Detail

### OpenALStreamPlayer

    public OpenALStreamPlayer(int source,
                              java.lang.String ref)

  Create a new player to work on an audio stream

  Parameters:
    `source` - The source on which we'll play the audio
    `ref` - A reference to the audio file to stream

### OpenALStreamPlayer

    public OpenALStreamPlayer(int source,
                              java.net.URL url)

  Create a new player to work on an audio stream

  Parameters:
    `source` - The source on which we'll play the audio
    `url` - A reference to the audio file to stream

Method Detail

### getSource

    public java.lang.String getSource()

  Get the source of this stream

  Returns:
    The name of the source of string

### play

    public void play(boolean loop)
              throws java.io.IOException

  Start this stream playing

  Parameters:
    `loop` - True if the stream should loop
  Throws:
    `java.io.IOException` - Indicates a failure to read from the stream

### setup

    public void setup(float pitch)

  Setup the playback properties

  Parameters:
    `pitch` - The pitch to play back at

### done

    public boolean done()

  Check if the playback is complete. Note this will never return true if we're looping

  Returns:
    True if we're looping

### update

    public void update()

  Poll the bufferNames - check if we need to fill the bufferNames with another section. Most of the time this should be reasonably quick

### stream

    public boolean stream(int bufferId)

  Stream some data from the audio stream to the buffer indicates by the ID

  Parameters:
    `bufferId` - The ID of the buffer to fill
  Returns:
    True if another section was available

### setPosition

    public boolean setPosition(float position)

  Seeks to a position in the music.

  Parameters:
    `position` - Position in seconds.
  Returns:
    True if the setting of the position was successful

### getPosition

    public float getPosition()

  Return the current playing position in the sound

  Returns:
    The current position in seconds.

Copyright © 2006 New Dawn Software. All Rights Reserved.