Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Leggere i TextData dei file audio e video

Lettura dei TextData presenti nei video e inserimento come sottotitoli
Lettura dei TextData presenti nei video e inserimento come sottotitoli
Link copiato negli appunti

Alcuni file prevedono la presenza di informazioni testuali, che possono essere semplici sottotitoli, informazioni aggiuntive o altro ancora: Flash è in grado di leggere tali informazioni in quanto supporta lo standard 3GPP per il "timed text" (letteralmente testo temporizzato, ovvero associato a determinati momenti dell'esecuzione del filmato); le specifiche di questo standard sono disponibili su 3gpp.org.

Actionscript prevede un apposito evento per la lettura di queste informazioni, ovvero onTextData. Tale evento viene lanciato ogni qualvolta vengono ricevute informazioni tesutali dal file; è necessario impostare manualmente gli oggetti e i comandi per visualizzare questi testi dato che il player non se ne occupa automaticamente.

Il procedimento per l'uso dell'evento onTextData è pressoché identico a quanto visto per i metaData, avremo però meno proprietà da gestire in quanto ogni evento textData prevede solo le proprietà trackId (il tracciato che "lancia" l'evento textData) e text (il testo da mostrare all'utente).

Leggere i TextData con Actionscript 2

Come abbiamo detto il codice è simile a quanto visto per i MetaData, infatti per ricavare l'evento TextData sarà sufficiente questa funzione:

Listato 4.1. Ricava l'evento TextData

stream_video.onTextData = function(oggetto:Object){
  // trace del testo e della traccia
  trace(oggetto.trackid)
  trace(oggetto.text);
}

Dove stream_video è il nome dell'oggetto NetStream che lancia l'evento. Eseguendo il filmato potremo notare come l'evento sia lanciato ogni volta che il testo da mostrare viene aggiornato: questo è comodissimo perché in pratica l'evento Actionscript si occupa automaticamente di inviare sempre il testo corretto e a noi non resta che mostrarlo all'utente, ad esempio in un apposito campo di testo, così:

Listato 4.2. Restituisce il testo corretto

stream_video.onTextData = function(oggetto:Object){
  sottotitoli.autoSize = true
  sottotitoli.text = oggetto.text
}

In figura è possibile vedere un fotogramma del video in esecuzione. Da notare che il campo di testo dove vengono mostrati i sottotitoli è un normale campo di testo dinamico di Flash, quindi è possibile posizionarlo a piacere e personalizzarne vari aspetti.

Figura 3. Un testo ricavato con l'evento TextData mostrato nel filmato
Screenshot del pannello

Nota: il video dell'esempio è stato reperito da un podcast online, ma è anche possibile aggiungere i sottotitoli ai propri contenuti video o audio, come vedremo in seguito.

Leggere i TextData con Actionscript 3

La differenza tra il codice Actionscript 2 e quello Actionscript 3 per l'evento onTextData è la stessa che abbiamo visto per l'onMetaData, non viene più associata la funzione direttamente allo stream, ma basta scriverla in questo modo:

Listato 4.3. Restituisce il testo in AS3

function onTextData(oggetto:Object){
  sottotitoli.autoSize = TextFieldAutoSize.LEFT
  sottotitoli.text = oggetto.text
}

In questo caso notiamo la differente assegnazione dell'attributo autoSize al campo di testo usato per mostrare i sottotitoli.

Nota: sia in Flash 8 che in Flash CS3 (e con entrambe le versioni di Actionscript) l'evento onTextData non verrà colorato nell'editor Actionscript, come è possibile vedere anche in figura. Non facciamoci ingannare dalla errata colorazione del codice, il comando è corretto e possiamo testarne l'efficenza avviando il test del filmato.

Figura 4. Il pannello Azioni con l'errata colorazione del codice
Screenshot delle azioni

Questo metodo per la lettura dei TextData vale anche per i file audio, il codice non richiede alcuna variazione, tuttavia per i file audio è più rara la presenza di sottotitoli.

Il formato 3GPP in realtà supporta anche la creazione di sottotitoli in stile "karaoke", tuttavia non vi sono informazioni precise sulla compatibilità con Flash, inoltre il fatto che per mostrare i sottotitoli sia necessario crearsi manualmente l'apposito campo di testo non rende molto fiduciosi sulla possibilità di sfruttare la possibilità di karaoke, almeno per il momento.


Ti consigliamo anche