Piero V.

Creare un file SWF per riprodurre un suono

Mi servirebbe un effetto sonoro per una pagina web perciò la scelta migliore è purtroppo il flash.

Con l’estensione ming di php e il codice di gazbming.com ho potuto creare questo file php che salva il file prova.swf che riproduce il file MP3 prova.mp3:

<?php

  Ming_setScale(20.0000000);

  $m = new SWFMovie();
  $m->setDimension(1, 1);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->setRate(31);

  $mp3=fopen('prova.mp3', 'rb');

  $numofframes=$m->streamMp3($mp3);
  while($numofframes-->0){
    $m->nextFrame();
  }

  #header('Content-type: application/x-shockwave-flash');
  #$m->output();
  set_time_limit(3600);
  $m->save('prova.swf');

Per chiarezza: la quartultima e la terzultima riga sono commentate perché darebbero l’output su schermo.

Ciò che fa questo codice è creare un movie SWF di dimensioni 1×1 e sfondo nero, riprodurre il file prova.mp3 e salvare il movie prodotto nel file prova.swf.

La penultima riga è solo di precauzione: ho provato con una canzone da 4 minuti e la prima volta mi ha dato errore perché i 30 secondi erano passati, poi ho aggiunto un limite di un’ora (3600 secondi) e non ho più avuto problemi.

Il test lo dovrete fare in locale quasi al 100% perché non penso che molti provvedano a dare l’estensione ming di PHP e perché è più comodo avere un file generato una volta per alleggerire il webserver.

Ringrazio di nuovo il sito sopra citato e spero vi sia di aiuto.