downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  

<oggvorbisOpenAL>
Last updated: Thu, 26 Jun 2008

Examples

Examples on using the ogg:// wrapper.

Example #1 Reading an OGG/Vorbis file

<?php
dl
("oggvorbis.so");

/* 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. */
}

fclose($fp);

?>

Example #2 Encode an audio file to OGG/Vorbis

<?php
dl
('oggvorbis.so');

$context = stream_context_create(array('ogg'=>array(
            
'pcm_mode' => OGGVORBIS_PCM_S8/* Signed 8bit audio */
            
'rate' => 44100,                /* 44kHz CD quality */
            
'bitrate' => 0.5,                /* Midquality VBR */
            
'channels' => 1,                /* Mono */
            
'serialno' => 12345)));          /* Unique within our stream */

/* Open file for appending.  This will "chain" a second OGG stream at the end of the first. */
$ogg = fopen('ogg://mysong.ogg', 'a', false, $context);

$pcm = fopen('mysample.pcm', 'r');

/* Compress the raw PCM audio from mysample.pcm into mysong.ogg */
stream_copy_to_stream($pcm, $ogg);

fclose($pcm);
fclose($ogg);
?>



add a noteadd a note User Contributed Notes
Examples
There are no user contributed notes for this page.




<oggvorbisOpenAL>
Last updated: Thu, 26 Jun 2008
show source | credits | sitemap | contact | advertising | mirror sites
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: http://phpbuilder.com/
Last updated: Tue Nov 1 20:20:59 2005 EST
Columns / Articles | Tips / Quickies | News | News Linking and RSS Feeds | Shared Code Library
Mail Archives | Support / Discussion Forums | Get Started! Links | Contribute! | Docs