private void alSourcePlay() { int state = AL10.alGetSourcei(alSource, AL10.AL_SOURCE_STATE); if (state != AL10.AL_PLAYING) { AL10.alSourcePlay(alSource); } }
public virtual void writeAudioData(int[] data, int offset, int Length) { int audioBytesLength = Length * 4; ByteBuffer directBuffer = soundBufferManager.getDirectBuffer(audioBytesLength); directBuffer.order(ByteOrder.LITTLE_ENDIAN); directBuffer.clear(); directBuffer.limit(audioBytesLength); directBuffer.asIntBuffer().put(data, offset, Length); directBuffer.rewind(); int alBuffer = soundBufferManager.Buffer; AL10.alBufferData(alBuffer, AL10.AL_FORMAT_STEREO16, directBuffer, frequency); AL10.alSourceQueueBuffers(alSource, alBuffer); soundBufferManager.releaseDirectBuffer(directBuffer); alSourcePlay(); checkFreeBuffers(); }
public AudioLine() { soundBufferManager = SoundBufferManager.Instance; alSource = AL10.alGenSources(); AL10.alSourcei(alSource, AL10.AL_LOOPING, AL10.AL_FALSE); }