downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

openal_buffer_create> <Usage
[edit] Last updated: Mon, 01 Nov 2010

view this page in

CIV. OpenAL Audio Bindings

Wstęp

Platform independent audio bindings. Requires the OpenAL library.

Instalacja

To rozszerzenie PECL nie jest dołączane do PHP.

Dodatkowe informacje, takie jak nowe wersje, pliki do pobrania, pliki źródłowe, informacje o opiekunach czy rejestr zmian, można znaleźć tutaj: http://pecl.php.net/package/openal.

DLL z tym rozszerzeniem PECL można pobrać ze strony PHP Downloads lub http://snaps.php.net/.

Konfiguracja czasu wykonywania

To rozszerzenie nie definiuje posiada żadnych dyrektyw konfiguracyjnych w pliku php.ini.

Typy zasobów

This extension defines four resource types: Open AL(Device) - Returned by openal_device_open(), Open AL(Context) - Returned by openal_context_create(), Open AL(Buffer) - Returned by openal_buffer_create(), and Open AL(Source) - Returned by openal_source_create().

Stałe predefinopwane

Poniższe stałe są zdefiniowane w tym rozszerzeniu i stają się dostępne, gdy rozszerzenie jest dokompilowane do PHP, lub załadowane dynamicznie przy starcie.

ALC_FREQUENCY (integer)

Context Attribute

ALC_REFRESH (integer)

Context Attribute

ALC_SYNC (integer)

Context Attribute

AL_FREQUENCY (integer)

Buffer Setting

AL_BITS (integer)

Buffer Setting

AL_CHANNELS (integer)

Buffer Setting

AL_SIZE (integer)

Buffer Setting

AL_BUFFER (integer)

Source/Listener Setting (Integer)

AL_SOURCE_RELATIVE (integer)

Source/Listener Setting (Integer)

AL_SOURCE_STATE (integer)

Source/Listener Setting (Integer)

AL_PITCH (integer)

Source/Listener Setting (Float)

AL_GAIN (integer)

Source/Listener Setting (Float)

AL_MIN_GAIN (integer)

Source/Listener Setting (Float)

AL_MAX_GAIN (integer)

Source/Listener Setting (Float)

AL_MAX_DISTANCE (integer)

Source/Listener Setting (Float)

AL_ROLLOFF_FACTOR (integer)

Source/Listener Setting (Float)

AL_CONE_OUTER_GAIN (integer)

Source/Listener Setting (Float)

AL_CONE_INNER_ANGLE (integer)

Source/Listener Setting (Float)

AL_CONE_OUTER_ANGLE (integer)

Source/Listener Setting (Float)

AL_REFERENCE_DISTANCE (integer)

Source/Listener Setting (Float)

AL_POSITION (integer)

Source/Listener Setting (Float Vector)

AL_VELOCITY (integer)

Source/Listener Setting (Float Vector)

AL_DIRECTION (integer)

Source/Listener Setting (Float Vector)

AL_ORIENTATION (integer)

Source/Listener Setting (Float Vector)

AL_FORMAT_MONO8 (integer)

PCM Format

AL_FORMAT_MONO16 (integer)

PCM Format

AL_FORMAT_STEREO8 (integer)

PCM Format

AL_FORMAT_STEREO16 (integer)

PCM Format

AL_INITIAL (integer)

Source State

AL_PLAYING (integer)

Source State

AL_PAUSED (integer)

Source State

AL_STOPPED (integer)

Source State

AL_LOOPING (integer)

Source State

AL_TRUE (integer)

Boolean value recognized by OpenAL

AL_FALSE (integer)

Boolean value recognized by OpenAL

Spis treści
openal_buffer_create --  Generate OpenAL buffer
openal_buffer_data --  Load a buffer with data
openal_buffer_destroy --  Destroys an OpenAL buffer
openal_buffer_get --  Retrieve an OpenAL buffer property
openal_buffer_loadwav --  Load a .wav file into a buffer
openal_context_create --  Create an audio processing context
openal_context_current --  Make the specified context current
openal_context_destroy --  Destroys a context
openal_context_process --  Process the specified context
openal_context_suspend --  Suspend the specified context
openal_device_close --  Close an OpenAL device
openal_device_open --  Initialize the OpenAL audio layer
openal_listener_get --  Retrieve a listener property
openal_listener_set --  Set a listener property
openal_source_create --  Generate a source resource
openal_source_destroy --  Destroy a source resource
openal_source_get --  Retrieve an OpenAL source property
openal_source_pause --  Pause the source
openal_source_play --  Start playing the source
openal_source_rewind --  Rewind the source
openal_source_set --  Set source property
openal_source_stop --  Stop playing the source
openal_stream --  Begin streaming on a source


openal_buffer_create> <Usage
[edit] Last updated: Mon, 01 Nov 2010
 
add a note add a note User Contributed Notes OpenAL Audio Bindings
Tjeerd 02-Feb-2007 08:37
OpenAL aims to provide a standardized API for something called '3D' sound, just like OpenGL does for '3D' video rendering.

The fun part of OpenAL is that it does all the DSP for you, so you don't need to know a lot about audio. Since OpenAL comes from Creative Labs, it supports hardware rendering of audio with most if not all SoundBlaster audio controllers. They come with chips from EMU-systems and are specifically designed to mix down multichannel audio with DSP effects like reverb and chorus, which could consume a lot CPU speed.

The downside of OpenAL is that (at this time of writing) it is focus on games only. It doesn't do MIDI at all, it doesn't record anything, it doesn't work like a synthesizer. The only thing you can do with OpenAL is play sounds in a simulated 3D environment.
It probably doesn't work on the web.

To use OpenAL you need to read the documentation about OpenAL.

Note concerning audio users: there's no such thing as '3D' audio with speakers. Technically, when people have only two ears, they really can't distinguish sound from above or below, even in front or from behind. To achieve this people merely hear volume, the brightness of sound and the phase difference. One should be able to hear more '3D' sound with only two quality-class speakers than with a consumer class 5.1-set.
cweiske at cweiske dot de 06-Sep-2006 01:31
I made a PHP-Gtk2 OpenAL demo which allows you to define as many sound sources as you like and position them relative to the listener by drag and drop: http://gnope.org/p/Tools_OpenALdemo
cweiske at cweiske dot de 21-Jul-2006 11:29
Playing a wav file:
<?php
function printok($b) {
    echo
$b ? " ok\n" : " error\n";
}

echo
"Opening device";
$device = openal_device_open();
printok($device);

echo
"Creating context";
$context = openal_context_create($device);
printok($context);
echo
"Making context the current";
printok(openal_context_current($context));

//where we are
//echo "Setting listener position";
//printok(openal_listener_set(AL_POSITION, array(0, 0, 0)));
//echo "Setting listener orientation";
//printok(openal_listener_set(AL_ORIENTATION, array(0=>0,1 => 1, 2=>0, 3=> 0, 4=>4, 5=>5)));

echo "Creating buffer";
$buffer = openal_buffer_create();
echo
"Loading wav";
printok(openal_buffer_loadwav($buffer, '/data/shared/vmware/newmessage.wav'));
echo
"buffer stats\n";
echo
" Frequency: " . openal_buffer_get($buffer, AL_FREQUENCY) . "\n";
echo
" Bits     : " . openal_buffer_get($buffer, AL_BITS) . "\n";
echo
" Channels : " . openal_buffer_get($buffer, AL_CHANNELS) . "\n";
echo
" Size     : " . openal_buffer_get($buffer, AL_SIZE) . "\n";

echo
"Creating source";
$source = openal_source_create();

echo
"Setting source buffer";
printok(openal_source_set($source, AL_BUFFER, $buffer));
//echo "Setting source position";
//printok(openal_source_set($source, AL_POSITION, array(1, 0, 0)));

echo "Playing source";
printok(openal_source_play($source));

echo
"sleeping\n";
//sleep(1);
//we wait 300msecs beause the sound
// has no time to be played otherwise
//since playing sound is done concurrently
// to the script
usleep(300000);

echo
"Destroying source";
printok(openal_source_destroy($source));
echo
"Destroying buffer";
printok(openal_buffer_destroy($buffer));
echo
"Destroying context";
printok(openal_context_destroy($context));
echo
"Closing device";
printok(openal_device_close($device));
?>

 
show source | credits | sitemap | contact | advertising | mirror sites