Piero V.

Epic Win: Inserire un filmato SWF

Oggi mi sono reso conto di un mio epic win fenomenale che però appartiene al passato.

Qualche tempo fa mi appassionavo molto ai forum e ne seguivo uno di supporto a un hoster di forum.

C’era una discussione sui vari tag HTML per mettere i contenuti multimediali.

Per il flash c’era solo l’embed, così ho postato il vero codice, quello con l’object.

Allora uno mi dice su perché in realtà l’embed era contenuto nel mio codice, che non serviva a niente, che dicevo cavolate.

Precisiamo subito che per chi non lo sapesse l’embed è messo per compatibilità con i vecchi browser.

Oggi ho realizzato che il W3C vuole dichiarare obsoleto il tag embed un po’ come il font, anzi, l’ha già fatto (per esempio nell’XHTML 1.1 non c’è).

Ora, chi aveva il codice più sbagliato? Io o te utente di cui per fortuna tua non mi ricordo l’username?

Direi Epic Win!

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.