Heim >Web-Frontend >H5-Tutorial >Ausführliche Erläuterung der geräteübergreifenden Web-Ultraschall-Kommunikationslösung basierend auf HTML5

Ausführliche Erläuterung der geräteübergreifenden Web-Ultraschall-Kommunikationslösung basierend auf HTML5

黄舟
黄舟Original
2017-03-09 16:09:401660Durchsuche

Ausführliche Erläuterung der HTML5-basierten webübergreifenden Ultraschallkommunikationslösung:

Vorwort: Chirp Das iPhone hat die Audioübertragung von Dateien gestartet. Für die Übertragung benötigen wir keine MMS, Bluetooth-Kopplung oder IM mehr Daten. Es teilt Daten durch das Zwitschern kleiner Vögel, was einfach und interessant ist, und kann schnell eine Eins-zu-Viele-Freigabe erreichen.

                                                                                                                 Allerdings wird die Technologie von Alipay derzeit nur zum Bezahlen genutzt und erfordert für den Einsatz spezielle Verkaufsautomaten, die Sonic-Zahlungen akzeptieren können.

Der Autor von „Advanced Sound for Games and Interactive Apps – WebAudio APIBoris Smus verwendet HTML5 Web Die Audio-API implementiert eine Ultraschall-Verbindungslösung basierend auf Web. Auf diese Weise ist weder die Installation eines Clients noch Bluetooth oder NFC können Sie zwei Geräte verbinden, die über Browser auf das Internet zugreifen und Bilder, Musik, Videos und andere Dateien übertragen. Diese Idee ist cool und hilft uns, einen großen Schritt nach vorne in der Funktionalität und Anwendungsebene von Web zu machen (diese Idee könnte Ihre sein). ) Undenkbar, unerhört), werfen wir einen Blick auf die spezifischen Prinzipien und den Implementierungsprozess.

…………………………………………✄……………………………………………… ……Wunderschöne Trennwände

Das Telefon in Ihrer Tasche ist ein cooles, schönes und viele funktionelle Werkzeuge. Wenn es jedoch mit anderen Geräten wie einem Fernseher oder einem Laptop kommunizieren möchte, sinkt das Benutzererlebnis erheblich. Bill Buxton hält eine sehr ansteckende Rede zu diesem Thema, in der er die drei Phasen der High-Tech-Evolution beschreibt:

                                                                                                                                                       zusammen  

Mit der Veröffentlichung des

iPhone sind wir offiziell in die Phase 2

eingetreten, aber Das Anschließen von Geräten ist mühsam. Es gibt viele Möglichkeiten, dies zu erreichen: Bluetooth, Bluetooth

LE, WiFi

Direkt, über lokal

WiFi Netzwerkerkennung und mehr. Dieser Artikel geht das Problem aus einem völlig unerwarteten Blickwinkel an: der Verwendung von Ultraschallwellen zur Übertragung und Übertragung von Daten zwischen benachbarten Geräten. Vor allem nutzt dieser Ansatz die Web Audio API und ermöglicht so die Anbindung reiner Webanwendungen. Demovideo

 Turm von Babel der Geräte

 Airplay und Chromecast ist eine großartige Möglichkeit, das Problem der Verbindung von Geräten innerhalb desselben Ökosystems (wie Apple oder Google) zu lösen , aber häufige Probleme bleiben schwer zu fassen.

Da es viele technische Möglichkeiten gibt, kann es vorkommen, dass die Geräte, die Sie verbinden möchten, keine gemeinsame Methode haben. Selbst wenn zwei Geräte über Bluetooth verfügen, muss möglicherweise eines konfiguriert werden, das andere jedoch nicht oder unterstützt eine andere Version des Standards. Dies ist besonders häufig bei Bluetooth der Fall. Viele Geräte unterstützen Bluetooth 4.0 (auch bekannt als BTLE) auf der Hardware, viele Geräte jedoch nicht Dieses neueste Protokoll wird aus verschiedenen Gründen nicht unterstützt.

 Diese Situation ist im Web aufgrund der Verbindung von Low-Level-Geräten noch schlimmerAPI wird aus Sicherheits-Sandbox-Gründen nicht bereitgestellt. Und da die Entwicklung von Web sehr langsam voranschreitet, ist es schwer vorstellbar, dass diese Situation in kurzer Zeit gelöst werden kann.

Daten auf unterhaltsame Weise übertragen

Electric Imp The Vorausgesetzt, Blinkup ist eine interessante Möglichkeit, terminalübergreifend zu kommunizieren. Es verwendet eine Reihe von Blitzen, um Smartphones und Imp zum Leuchten zu bringen – ein Gerät, das wie eine kleine SD-Karte aussieht und über einen Lichtsensor zur Datenübertragung dazwischen verfügt.                                                                                                                                               DFÜ-Modems machen etwas Ähnliches. Sie kodieren und dekodieren digitale Daten auf analogen Telefonleitungen. Erinnern Sie sich an die lästigen Verbindungsgeräusche? Das DFÜ-Modem schaltet den Lautsprecher ein, um den Benutzer darüber zu informieren, dass ein Handshake stattfindet. Wenn Sie diese vergessen haben, können Sie sie hier nachlesen

. Selbst bei heutigen analogen Telefonen entspricht der Ton, den Sie hören, wenn Sie eine Zifferntaste auf einer Tastatur drücken, der Frequenz, die das Telefonsystem für die Analog-Digital-Umwandlung verwendet. Diese Konvertierung verwendet das Dual Tone Multi-Frequency Signal (DTMF) .                                                                                                                                                                                            . Beide Hardwareteile können Ton zum Senden und Empfangen von Daten verwenden, ähnlich wie ein Modem über eine Telefonleitung. Noch besser: Wenn das Betriebssystem das Senden und Empfangen mit einer ausreichend hohen Frequenz unterstützt, können wir einen stillen Datenkanal erstellen.

                                                                                                    Daten durch Ton zu kodieren ist nichts Neues. Die Idee von Audio Watermark

besteht darin, die Signatur in die Musik zu kodieren, die der Hörer mit menschlichen Mitteln nicht erkennen kann, die aber von einem anderen Gerät verstanden werden kann. Dies ist eine clevere Möglichkeit, Piraterie zu verhindern.

Die meisten gewöhnlichen Lautsprecher sind in der Lage, Ton mit einer Abtastrate von 44,1 kHz zu erzeugen (was dazu führt, dass die höchste Frequenz 22KHz - gemäß Shannon Sampling Theorem). Dadurch können wir Daten nicht nur in Ton umwandeln, sondern auch Audio erzeugen, das Erwachsene nicht hören können. Allerdings können Kinder und Tiere trotzdem hören:)

Technisch ist zu beachten, dass das Mikrofon manchmal nicht mit dem Lautsprecher kompatibel ist, insbesondere im Mobile Telefon, da sie häufig für sprechende Personen optimiert sind und eine niedrigere Abtastrate verwenden, um den Klang zu verbessern. In anderen Fällen muss die Firmware, selbst wenn die Hardware kompatibel ist, mit einer niedrigeren Abtastrate laufen, um die Stromversorgung sicherzustellen. In diesem Fall kann das Gerät keine Schallwellen empfangen und schallbasierte Verbindungen funktionieren nur in eine Richtung.

SONICNET.JS, eine Implementierung von Web Audio

 Um diese Konzepte zu veranschaulichen, habe ich eine JavaScript-Bibliothek zum Senden und Empfangen von Tondaten erstellt. Meine Methode erfordert kein Erlernen der komplizierten Audio-Wasserzeichen-Technologie und ist sogar einfacher als DTMF. Grundsätzlich legen Sie fest, wie oft ein Bereich verwendet wird und welche Buchstabenmenge übertragen werden kann. Das Spektrum ist in Bereiche unterteilt, die den angegebenen Anfangs- und Endbuchstaben entsprechen, wobei jeder Buchstabe /-Code einem Teil des gesamten Frequenzbereichs entspricht.

                                                                                                                                                                                                                             . Das Empfangsende führt eine diskontinuierliche Fourier-Transformation des Signals durch (Anmerkung von Yujie: Mein Hauptfach ist Informations- und Kommunikationstechnik, Freunde, die digitale Signalverarbeitung studiert haben, sollten das sehr gut wissen) und nach Spitzen innerhalb des angegebenen Frequenzbereichs suchen. Nachdem innerhalb eines Signalintervalls ein Spitzenwert gefunden wurde, wandelt es die Frequenz wieder in Zeichen um. Dies ist im Grunde ein Monoton-Mehrfrequenzsignal (STMF) Schema.

                                                                                                                                           Wir haben ein einfaches Schema verwendet, um benachbarte wiederholte Zeichen zu vermeiden.

Ich habe einen SocketAPIentworfen, der für die akustische Kommunikation verwendet wird. Der Client-Code sieht folgendermaßen aus:

ssocket = new SonicSocket({alphabet: '0123456789'});
function onButton() {
 ssocket.send('31415');
}


>Der Server sieht aus so:

sserver = new SonicServer({alphabet: '0123456789'});
sserver.on('message', function(message) {
  //Expect message to be '31415'.
 console.log(message);
});
sserver.start();

JS

Bibliothek unterstützt

github.

Natürlich erfordert die Verwendung eine Implementierung von Web Audio (meistens auf der sendenden Seite mit OscillatorNode , verwenden Sie AnalyserNode ) auf der Empfangsseite. Ich habe Macbook auf Chrome bis Chrome sowie Übertragen Sie das Gehäuse von Mac Chrome auf Android Chrome. Ich habe ein paar Beispiele geschrieben, um diese Idee zu veranschaulichen. Sie erscheinen im Video

, das am Anfang dieses Artikels gezeigt wird. Das erste Beispiel ermöglicht es Ihnen, Emoticons von einem Gerät an ein anderes zu senden. Es wird ein kleiner Zeichensatz verwendet, der nur

6 Zeichen umfasst, die jeweils 1 Ausdrücken entsprechen. Sie können einen der 6 Ausdrücke auswählen und das entsprechende Zeichen wird über das Schallnetzwerk gesendet und am anderen Ende empfangen und angezeigt. Eine realistischere Anwendung für sonicnet.js

ist dieser

Chat Apply , um ein eindeutiges 5-stelliges Token zu generieren und es auf 2 Geräten zu verwenden. Verbindung herstellen. Dies geschieht mit Hilfe eines Pairing-Servers, der über WebSocket eine Proxy-Verbindung zwischen den beiden Geräten aufbaut. Sobald die Verbindung hergestellt ist, wird die Konversation selbst über WebSocket gesendet. Servercode wird auf nodejitsu gehostet.                                                                                                                        >Es hat sich weiterentwickelt, um solche Anwendungen zu ermöglichen, was einen erheblichen Fortschritt darstellt. Ich bin besessen von der Implementierung von sonicnet.js

im Internet der Dinge. Hierbei handelt es sich um reine Web-Technologie, mit der Geräte gekoppelt werden können. Die Kombination aus allgegenwärtigen Browsern und Audio-Hardware wird ein großer Gewinn sein, und selbst auf Hardware-Ebene muss die Web

-Plattform nicht auf Bluetooth oder andere Nahfeld-Konnektivitätstechnologien warten überhaupt reif.

Wenn dieser Artikel Ihr Interesse geweckt hat, können Sie versuchen, eine Anwendung mit sonicnet.js zu schreiben. Wie ich bereits erwähnt habe, ist der Empfang von Hochfrequenz-Audio aufgrund von Hardware-/ Firmware-Einschränkungen nicht auf allen Geräten verfügbar, daher würde ich gerne wissen, welche verfügbar sind und welche nicht . Kann nicht. Ich erwarte, dass die meisten Telefone nur senden können, während die meisten Laptops gleichzeitig empfangen und senden können. Wenn Sie die Emoticon-Demo auf Ihrem Gerät ausprobiert haben, füllen Sie bitte dieses Formular aus. Zum Zeitpunkt des Schreibens dieses Artikels unterstützt die Android-Plattform Chrome Beta keine EchtzeiteingabeDaher ist die Datenübertragung vom Handy auf den Laptop die einzige Möglichkeit.


Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der geräteübergreifenden Web-Ultraschall-Kommunikationslösung basierend auf HTML5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn