2014-10-01 13 views
6

HTML5 ha un rilevamento del volume integrato.Javascript per rilevare il volume del sistema (audio) e il jack audio collegato

<video controls width="320" height="176" onvolumechange="alert('The volume has been changed')"> 

Questo è solo per il lettore.

È possibile rilevare il volume dal sistema? Dì un telefono. Posso ottenere letture del volume del mio telefono dal browser mobile?

Oppure posso utilizzare JS per rilevare se il jack audio è collegato?

È possibile rilevare il livello del volume per l'uscita audio utilizzando GetUserMedia?

risposta

1

Risposta breve per questo è no! Questo è il modo in cui i browser Web sono stati creati da molto tempo e Microsoft/Google/Apple/Mozilla/Opera lo ha fatto per evitare exploit tramite File.IO e simili. In realtà, dovremmo essere grati per questo - in quanto isola il tuo computer (con tutte le tue cose personali) dall'applicazione web (che potrebbe essere ospitata su un server con intenzioni ostili).

In realtà, c'è un modo per farlo, ma funzionerebbe solo per gli utenti di IE - e la risposta è plug-in ActiveX. Ora, potresti creare il tuo javascript per creare un tale plug-in e comunicare con esso, ma chissà se ActiveX sarà supportato da IE in futuro.

Quindi, di per sé, non è possibile farlo solo con HTML5/Javascript: basti pensare al browser come sistema operativo su cui è in esecuzione la tua app web. Quindi Google, Microsoft ecc. + Il resto delle persone che decidono gli standard HTML5 sono quelli che decidono quanto accesso ottiene lo sviluppatore. L'hardware della videocamera, l'hardware GPS ecc. Ci arriva, ma non ci è permesso fare tutto ciò che vogliamo con quell'hardware - non è sempre la scelta degli sviluppatori.