OpenAL bindings for PHP.
$device = openal_device_open(null);
$context = openal_context_create($device);
openal_context_current($context);
$source = openal_source_create();
$buffer = openal_buffer_create();
openal_buffer_data($buffer, AL_FORMAT_STEREO16, $wavData, $wavSampleRate);
openal_source_set($source, AL_BUFFER, $buffer);
openal_source_set($source, AL_LOOPING, true);
openal_source_play($source);
sleep($wavLength);
openal_source_stop($source);
openal_context_destroy($context);
openal_device_close($device);
- PHP8.1
- OpenAL library and headers
https://www.php.net/manual/en/book.openal.php
docker build -t php-openal .
docker run -it --device /dev/snd -e PULSE_SERVER=/tmp/pulse-native -e PULSE_COOKIE=/tmp/pulse-cookie -v $XDG_RUNTIME_DIR/pulse/native:/tmp/pulse-native -v ~/.config/pulse/cookie:/tmp/pulse-cookie --group-add audio --entrypoint php php-openal examples/example.php
phpize
./configure --with-openal=/usr/local/Cellar/openal-soft/1.19.1 # Adjust path accordingly
make
sudo make install
pear package # This will generate an openal-X.X.X.tgz to push to pecl.php.net