Audio HTML5 - HTML5 audio
HTML |
---|
Confronti |
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:
- Browser Android 2.3
- Browser Blackberry
- Google Chrome
- Internet Explorer Mobile 9
- Safari 4
- Firefox
- Opera Mobile 11
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.
Formato | Contenitore | Tipo MIME | Cromo | Internet Explorer | Bordo | Firefox | musica lirica | Safari |
---|---|---|---|---|---|---|---|---|
PCM | WAV | audio/wav | sì | No | sì | Sì, nella v3.5 | Sì, nella v11.00 | Sì, nella v3.1 |
MP3 | MP3 | audio/mpeg | sì | Sì, in IE9 | sì | Sì, nella v71 | sì | Sì, nella v3.1 |
AAC | MP4 | audio/mp4 | sì | Sì, in IE9 | sì | Dal sistema operativo | sì | sì |
ADTS | audio/aac audio/aacp |
sì | No | sì | Dal sistema operativo in v45.0 | sì | sì | |
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 | sì | 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 | sì | No | Nella v79 Nella v17, con estensioni per i media Web |
Sì, nella v28.0 | sì | 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ì | Sì, nella v11 |
Ogg | audio/ogg | Sì, nella v56 | No | Nella v79 Nella v17, con estensioni per i media Web |
Sì, nella v51 | sì | 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:
- Google Chrome 10 (Abilitato per impostazione predefinita dal 14)
- Firefox 23 (Abilitato di default dal 25)
- Opera 15
- Safari 6
- Microsoft Edge 12
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"]