/* By default, ogg:// will decode to Signed 16-bit Little Endian */ $fp = fopen('ogg://myaudio.ogg', 'r');
/* Collect some information about the file. */ $metadata = stream_get_meta_data($fp);
/* Inspect the first song (usually the only song, but OGG/Vorbis files may be chained) */ $songdata = $metadata['wrapper_data'][0];
echo "OGG/Vorbis file encoded by: {$songdata['vendor']}\n."; echo " {$songdata['channels']} channels of {$songdata['rate']}Hz sampling encoded at {$songdata['bitrate_nominal']}bps.\n"; foreach($songdata['comments'] as $comment) { echo " $comment\n"; }
while ($audio_data = fread($fp, 8192)) { /* Do something with the PCM audio we're extracting from the OGG. Copying to /dev/dsp is a good target on linux systems, just remember to setup the device for your sampling mode first. */ }