Plug-in differente? tutto (o molto) da rifare.

Si è accennato a Quicktime, ma gli altri formati?
Test eseguiti su diversi browser e sistemi operativi hanno dato un esito parzialmente scontato e assimilabile alla già citata tabella di compatibilità : il problema quindi resta l’universalità dei plug-in.

Oltre a Quicktime, allo stato attuale solo Flash si rivela (vista ormai la sua semi-imprescindibilità) decisamente versatile. L’unica pecca riguarda Linux: il plug-in infatti resta ancora fermo alla versione 7, impedendo la visualizzazione dei filmati ad alta qualità prodotti utilizzando il nuovo codec VP6 della On2.

Windows Media ha il suo “percorso” alternativo che abbiamo già citato; occorre invece soffermarsi su Real.

Non staremo a discutere ora della corretta visualizzazione dell’interfaccia, quanto invece di un comportamento legato alle dimensioni “ereditate” dal layout SMIL.

Il plug-in utilizzato nei test è riferito alla versione 10.5 di Real Player per Windows.  Tale plug-in non ha impostato nessun parametro peculiare di fit o di scale; esiste il maintainaspect che però sembra avere caratteristiche diverse dai suoi “colleghi”.

Il filmato, durante la sua esecuzione, si ridimensiona armonicamente ad ogni aggiustamento dei caratteri tramite browser. Ma ciò avviene solo in corso di esecuzione.
Se si prova a ridimensionare i caratteri prima di ogni nuova esecuzione il plug-in non si adatta all’area ingrandita e propone invece la struttura originaria del layout SMIL.

schermata del plug-in: la dimensione del filmato Real e' piu' piccola di quella del plug-in

Il comportamento risulta essere problematico non solo a livello di percezione visiva ma soprattutto di funzionalità.
Infatti l’utente si vede costretto ad effettuare un nuovo fastidioso ridimensionamento per ripristinare la situazione di ingrandimento.

Al problema si è cercato di dare un “workaround” di certo un lavoro in fieri ma che comunque può in qualche modo risultare utile. E ancora una volta ci affideremo alle proprietà CSS.

Posto il fatto che per riavviare l’esecuzione occorra premere il tasto “play” sulla barra di comandi del plug-in, è ragionevole pensare al passaggio fisico del mouse sull’elemento; a questo punto proviamo a “forzare” il ripristino tramite la pseudo-classe :hover.

#mmobj:hover object {width: 100.01%;}

In questo modo ogni volta che ci troviamo sull’area del <div> contenitore, diamo a tutti gli <object> al suo interno una larghezza pari a 100% (quella precedentemente impostata) + uno 0.01% sufficiente a scatenare il ripristino.

Purtroppo Internet Explorer (almeno fino alla versione 7, ancora da testare) non supporta l’hover su tutti gli elementi, quindi per emulare tale funzione occorre (ahimé) ricorrere a un piccolo javascript (la cui struttura è simile a quella per simulare l’hover sui paragrafi), considerando il fatto che IE fallisce lo “zoom” automatico anche al caricamento del filmato.
Quindi occorre che sia in fase di caricamento della pagina che di replay manuale del filmato sia garantito il corretto ridimensionamento del video e dei sottotitoli.

Visto che tale espediente occorre solo a Internet Explorer, possiamo caricare nell’head della pagina HTML un file .js esterno affidandoci ai commenti condizionali:

<!--[if IE]><script type="text/javascript" src="../js/real.js"></script><![endif]-->

Prima di osservare il javascript bisognerà effettuare due aggiornamenti nel codice della pagina, dapprima assegnando un ID al plug-in:

<object id="ram" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="280">

e poi creando una classe CSS delegata a simulare l’hover:

#mmobj object.scaled {width: 100.1%;} (da notare che IE non “reagisce” ad una percentuale inferiore allo 0.1%)

Il javascript quindi verificherà l’associazione della classe scaled al plug-in sia in fase di caricamento che al passaggio del mouse sullo stesso:

//avvia il ridimensionamento al caricamento della pagina
onload = function() {scaleToFit();}

function scaleToFit() {
  obj = document.getElementById("ram");

  //assegna la classe "scaled" con un piccolo delay per il caricamento del plugin
  setTimeout('obj.className = "scaled";', 1000);

  o = document.getElementById("mmobj").getElementsByTagName("OBJECT");
  for (k=0; k<o.length; k++) {

    //assegna all'evento "onmouseover" il ridimensionamento associando la classe
    o[k].onmouseover = function() {obj.className = "scaled";}

    //assegna all'evento "onmouseoout" il ripristino della larghezza, annullando l'associazione
    o[k].onmouseout = function() {obj.className = "";}
  }
}

Va sottolineato che questo “artificio” funziona correttamente solo dalla versione 5.5 di Internet Explorer.

Inutile rimarcare gli svantaggi di usare javascript per correggere il problema, ma di fatto il suo mancato utilizzo (qualora si disabilitino gli script) non impedisce comunque di poter ridimensionare il filmato.

Da non sottovalutare inoltre la possibilità che l’utente si muova rapidamente dall’area dei plug-in prima che il filmato sia completamente caricato, impedendo un corretto intercettamento dell’evento.

Naturalmente le questioni aperte restano molte (usabilità e conformità delle interfacce dei plug-in, qualità e scalabilità dei video alle diverse connessioni, etc.), ma ciò è uno stimolo in più per verificare come seguendo il percorso presente e futuro degli standard si possa immaginare un web creativo e al tempo stesso aperto, senza barriere.

Potrebbero interessarti anche i seguenti articoli

Condividi:

Informazioni sull'autore

Alessio Cartocci
Alessio Cartocci
36 anni, "prestato" al bit da ormai quasi 15 anni, attualmente faccio spola tra l'Italia e la Svizzera, con un occhio verso il Nord Europa. "Prestato" perché non ho mai nascosto le mie tendenze umanistiche (laurea in lettere, dopo qualche esame di ingegneria) e altri percorsi fatti di musica, parole ed immagini. Per questo è stato naturale occuparmi di multimedialità cercando di coniugare la logica ferrea della programmazione alla creatività. Una sfida davvero stimolante, partita da un 486 finalmente dotato di una scheda audio (all'epoca) davvero innovativa: la Sound Blaster AWE 64. La voglia di esplorare strade sempre nuove e diverse mi ha portato dapprima a un progetto culturale interattivo scritto in Visual C++, poi alla realizzazione di CBT utilizzando ToolBook e ancora a lavorare con software audio/video specifici come Cubase e Premiere. Quest'ultima esperienza è poi culminata, nel 1997, in una specializzazione di "midifonico programmatore di sistemi di automazione musicale". La rete delle reti è arrivata due anni dopo e da allora è di casa:  ho curato la progettazione e realizzazione di una web-tv e di speciali multimediali per un portale nazionale rivolto agli italiani nel mondo, primo a sperimentare in Italia i codec RealVideo 8 e tra i primi a puntare sul linguaggio SMIL. In seguito ho svolto attività di formazione di base (Office, ECDL) e avanzata (Flash MX), prima di affrontare, dal 2002, un nuovo importante percorso come consulente nella riprogettazione di alcuni portali istituzionali. E questo percorso fece incontrare compiutamente a me, che usavo editor visuali (WYSIWYG), un modo completamente nuovo ed affascinante di creare e di progettare. L'iniziale difficoltà nel comprendere ed assimilare i molteplici temi e problemi legati agli standard e all'accessibilità fu ben presto soppiantata dalla sempre più forte convinzione di "fare la cosa giusta", e non solo a livello di codice. Così ho finalmente ripreso in mano l'argomento "multimedia", convinto che l'accessibilità sia una scelta doverosa anche per i progetti culturali, artistici, educativi o che semplicemente fanno largo uso di materiale multimediale. E, soprattutto, convinto che non bisogna mai essere stanchi di sperimentare, di essere "in viaggio".

Commenti

Nessun commento

    Rispondi

    Link e informazioni