Audio HTML5 - HTML5 audio

L'audio HTML5 è un argomento della specifica HTML5 , che incorpora l'input audio, la riproduzione e la sintesi , nonché la sintesi vocale , nel browser.

elemento <audio>

L'elemento <audio> rappresenta un suono o un flusso audio. È comunemente usato per riprodurre un singolo file audio all'interno di una pagina web, mostrando un widget GUI con controlli di riproduzione/pausa/volume.

L'elemento <audio> ha questi attributi:

  • attributi globali (accesskey; class; contenteditable; contextmenu; dir; draggable; dropzone; hidden; id; lang; spellcheck; style; tabindex; title; translate)
  • autoplay = "autoplay" o "" (stringa vuota) o vuoto
    Indica all'agente utente di avviare automaticamente la riproduzione del flusso audio non appena può farlo senza fermarsi.
  • preload = "none" o "metadata" o "auto" o "" (stringa vuota) o vuoto
    Rappresenta un suggerimento per l'agente utente sull'opportunità di un download ottimistico del flusso audio stesso o dei suoi metadati.
    • "none": suggerisce all'agente utente che l'utente non dovrebbe aver bisogno del flusso audio o che è desiderabile ridurre al minimo il traffico non necessario.
    • "metadata": suggerisce all'agente utente che non ci si aspetta che l'utente abbia bisogno del flusso audio, ma che è desiderabile recuperare i suoi metadati (durata e così via).
    • "auto": Suggerimenti per l'agente utente che è consigliabile scaricare in modo ottimistico l'intero flusso audio.
  • controlli = "controlli" o "" (stringa vuota) o vuoto
    Indica all'agente utente di esporre un'interfaccia utente per il controllo della riproduzione del flusso audio.
  • loop = "loop" o "" (stringa vuota) o vuoto
    Indica allo User-Agent di tornare all'inizio del flusso audio al raggiungimento della fine.
  • mediagroup = string Indica
    allo User-Agent di collegare più video e/o flussi audio insieme.
  • muted = "muto" o "" (stringa vuota) o vuoto
    Rappresenta lo stato predefinito del flusso audio, potenzialmente sovrascrivendo le preferenze dell'utente.
  • src = non vuoto [URL] potenzialmente circondato da spazi
    L'URL per il flusso audio.

Esempio:

<audio controls>
  <source src="https://media.w3.org/2010/07/bunny/04-Death_Becomes_Fur.mp4" type="audio/mp4" />
  <source src="https://media.w3.org/2010/07/bunny/04-Death_Becomes_Fur.oga" type="audio/ogg; codecs=vorbis" />
  <p>Your user agent does not support the HTML5 Audio element.</p>
</audio>

Browser di supporto

Su PC:

Su dispositivi mobili:

Formati di codifica audio supportati

L'adozione dell'audio HTML5, come per i video HTML5 , è diventata polarizzata tra i sostenitori dei formati liberi e quelli coperti da brevetti . Nel 2007, la raccomandazione di utilizzare Vorbis è stata ritirata dalle specifiche dal W3C insieme a quella di utilizzare Ogg Theora , adducendo la mancanza di un formato accettato da tutti i principali fornitori di browser.

Di Apple e Microsoft supportano l' ISO / IEC - definito i formati AAC e il più vecchio MP3 . Mozilla e Opera sostengono la libera e aperta , priva di royalty Vorbis formato Ogg e WebM contenitori, e criticano la natura brevetto gravati di MP3 e AAC, che sono garantiti per essere “non-free”. Google ha finora fornito supporto per tutti i formati comuni.

La maggior parte dei file AAC con lunghezza finita sono racchiusi in un contenitore MPEG-4 (.mp4, .m4a), che è supportato in modo nativo in Internet Explorer, Safari e Chrome e supportato dal sistema operativo in Firefox e Opera. La maggior parte dei flussi live AAC di lunghezza infinita sono racchiusi in un contenitore Audio Data Transport Stream (.aac, .adts), supportato da Chrome, Safari, Firefox ed Edge.

Molti browser supportano anche l' audio PCM non compresso in un contenitore WAV E.

Nel 2012, il formato Opus , gratuito e aperto , è stato rilasciato e standardizzato da IETF . È supportato da Mozilla, Google, Opera e Edge.

Questa tabella documenta l'attuale supporto per i formati di codifica audio da parte <audio>dell'elemento.

Formati supportati da diversi browser web
Formato Contenitore Tipo MIME Cromo Internet Explorer Bordo Firefox musica lirica Safari
PCM WAV audio/wav No Sì, nella v3.5 Sì, nella v11.00 Sì, nella v3.1
MP3 MP3 audio/mpeg Sì, in IE9 Sì, nella v71 Sì, nella v3.1
AAC MP4 audio/mp4 Sì, in IE9 Dal sistema operativo
ADTS audio/aac
audio/aacp
No Dal sistema operativo in v45.0
Vorbis Ogg audio/ogg Sì, nella v9 No Nella v79
Nella v17, con estensioni per i media Web
Sì, nella v3.5 Sì, nella v10.50 Con Xiph QuickTime Components ( macOS 10.11 e versioni precedenti)
WebM audio/webm No Nella v79
Nella v17, con estensioni per i media Web
Sì, nella v4.0 Sì, nella v10.60 No
Opus Ogg audio/ogg Sì, nella v25
(nella v31 per Windows)
No Nella v79
Nella v17, con estensioni per i media Web
Sì, nella v15.0 Sì, nella v14 No
WebM audio/webm No Nella v79
Nella v17, con estensioni per i media Web
Sì, nella v28.0 No
CAF audio/x-caf No No No No No Sì, in Safari 11 e macOS High Sierra
FLAC FLAC audio/flac Sì, nella v56 No Sì, nella v16 Sì, nella v51 Sì, nella v11
Ogg audio/ogg Sì, nella v56 No Nella v79
Nella v17, con estensioni per i media Web
Sì, nella v51 No

API Web Audio e API di elaborazione MediaStream

La specifica dell'API Web Audio sviluppata dal W3C descrive un'API JavaScript di alto livello per l'elaborazione e la sintesi dell'audio nelle applicazioni web. Il paradigma principale è un grafico di routing audio, in cui un numero di oggetti AudioNode sono collegati insieme per definire il rendering audio complessivo. L'elaborazione effettiva avverrà principalmente nell'implementazione sottostante (tipicamente codice Assembly / C / C++ ottimizzato), ma sono supportate anche l'elaborazione e la sintesi JavaScript dirette.

Il browser Firefox di Mozilla implementa un'estensione API dati audio simile dalla versione 4, implementata nel 2010 e rilasciata nel 2011, ma Mozilla avverte che non è standard e deprecata e consiglia invece l'API Web Audio. Alcune librerie di sintesi e elaborazione audio JavaScript come Audiolet supportano entrambe le API.

Il W3C Audio Working Group sta anche considerando la specifica API di elaborazione MediaStream sviluppata da Mozilla . Oltre al missaggio e all'elaborazione audio, copre lo streaming multimediale più generale, inclusa la sincronizzazione con elementi HTML, l'acquisizione di flussi audio e video e il routing peer-to-peer di tali flussi multimediali.

Browser di supporto

Su PC:

Su dispositivi mobili:

  • Google Chrome per Android 28 (Abilitato per impostazione predefinita dal 29)
  • Safari 6 (ha restrizioni sull'uso (disattivato a meno che l'utente non chiami))
  • Firefox 23 (Abilitato di default dal 25)
  • Tizen

API vocale web

L' API Web Speech mira a fornire un metodo di input alternativo per le applicazioni Web (senza utilizzare una tastiera). Con questa API, gli sviluppatori possono dare alle app Web la possibilità di trascrivere la voce in testo, dal microfono del computer. L'audio registrato viene inviato ai server vocali per la trascrizione, dopodiché il testo viene digitato per l'utente. L'API stessa è indipendente dall'implementazione del riconoscimento vocale sottostante e può supportare sia i riconoscitori basati su server che quelli incorporati. Il gruppo HTML Speech Incubator ha proposto l'implementazione della tecnologia audio-speech nei browser sotto forma di API uniformi e multipiattaforma. L'API contiene entrambi:

  • API di input vocale
  • API di sintesi vocale

Google ha integrato questa funzione in Google Chrome nel marzo 2011. Consentendo ai suoi utenti di effettuare ricerche sul Web con la propria voce con codici come:

<script type="application/javascript">
    function startSearch(event) {
        event.target.form.submit();
    }
</script>
<form action="http://www.google.com/search">
  <input type="search" name="q" speech required onspeechchange="startSearch">
</form>

Browser di supporto

  • Safari 6.1 e versioni successive [PARZIALE: solo sintesi vocale; nessun riconoscimento]
  • Google Chrome 25 e versioni successive
  • Firefox Desktop 44.0 e versioni successive (Linux e Mac) / 45.0 e versioni successive (Windows) [PARZIALE: solo sintesi vocale; nessun riconoscimento; attualmente richiede che l'opzione "media.webspeech.recognition.enable" about:config venga modificata manualmente in "true"]

Guarda anche

Appunti

Riferimenti

Link esterni