Utilisation
(no version information, might be only in CVS)
Utilisation --
Exemples d'utilisation du gestionnaire
ogg://.
Exemples
Exemple 1. Lecture d'un fichier OGG/Vorbis
<?php dl("oggvorbis.so");
/* Par défaut, ogg:// décodera en 16-bit signé, en mode Little Endian */ $fp = fopen('ogg://monaudio.ogg', 'r');
/* Collecte quelques informations sur le fichier. */ $metadata = stream_get_meta_data($fp);
/* Inspection de la première chanson (habituellement la seule chanson mais les fichiers OGG/Vorbis peuvent être chaînés) */ $songdata = $metadata['wrapper_data'][0];
echo "Fichier OGG/Vorbis encodé par : {$songdata['vendor']}\n."; echo " {$songdata['channels']} canaux de {$songdata['rate']}Hz encodé à {$songdata['bitrate_nominal']}bps.\n"; foreach($songdata['comments'] as $comment) { echo " $comment\n"; }
while ($audio_data = fread($fp, 8192)) { /* Faire quelque chose avec l'audio PCM extrait depuis le OGG. Copier vers /dev/dsp est une bonne chose sur les systèmes linux, souvenez-vous juste de définir le périphérique pour votre mode d'échantillonage d'abord. */ }
fclose($fp);
?>
|
|
Exemple 2. Encoder un fichier audio en OGG/Vorbis
<?php dl('oggvorbis.so');
$context = stream_context_create(array('ogg'=>array( 'pcm_mode' => OGGVORBIS_PCM_S8, /* audio 8bit signé */ 'rate' => 44100, /* Qualité CD 44kHz */ 'bitrate' => 0.5, /* Qualité moyenne VBR */ 'channels' => 1, /* Mono */ 'serialno' => 12345))); /* Unique dans notre flux */
/* Ouverture d'un fichier pour un ajout. Ceci permet de "chaîner" un deuxième flux OGG à la fin du premier. */ $ogg = fopen('ogg://machanson.ogg', 'a', false, $context);
$pcm = fopen('mysample.pcm', 'r');
/* Compression de l'audio brute PCM depuis mysample.pcm vers machanson.ogg */ stream_copy_to_stream($pcm, $ogg);
fclose($pcm); fclose($ogg); ?>
|
|