Frage

Ich bin erneut Besuch ein ID-Scanner-Station Programms, das wir vor Jahren gebaut und ich habe eine Anfrage von den Benutzern ein System Signalton zu machen. Wir denken, das System zu einem Web-Browser zu bewegen, aber ist es möglich, einen Lautsprecher Piepton über Javascript oder etwas zu berufen? Es braucht nicht Cross-Browser kompatibel zu sein, aber es muss wahrscheinlich auf Windows oder Linux arbeiten. Die Stationen in Frage sind nicht mit einer Soundkarte oder externen Lautsprechern ausgestattet , damit die Anforderung für einen PC-Lautsprecher-Zugang.

Ich weiß, dass jemand geht, es zu sagen, also werde ich diese vorne Adresse: Ich interessiere mich nicht, was Sie denken über Anwendungen Lärm zu machen, das ist nicht für Sie . Benutzer fordern es, macht es Sinn, und die Hardware-Scanner macht schon Lärm sowieso. Ja, wir geben ein visuelles Feedback, mit unterscheidbaren Text und Farbe, aber wir finden, dass die Menschen die bestehenden Piepton als positives Feedback akzeptieren und mehr Audio-Kontext hinzugefügt würde helfen.

War es hilfreich?

Lösung

Mit Hilfe von JavaScript, es ist unmöglich - JavaScript keinen Zugriff auf den Client-Computer mit Ausnahme von Cookies hat und den neuen HTML5 lokalen Speicher

.

Was Sie tun können, ist jedoch ein Java-Applet verwenden, die steuerbar über JavaScript sein - versteckt oder nicht.

Sie können ein Beispiel hier finden.

Dies erfordert Java-Runtime auf dem Client-Computer installiert werden.

Andere Tipps

Es ist möglich, mit JavaScript heute.

Hier ist eine quick & dirty Funktion, die ich schrieb ...

var beep = function(duration, type, finishedCallback) {

    if (!(window.audioContext || window.webkitAudioContext)) {
        throw Error("Your browser does not support Audio Context.");
    }

    duration = +duration;

    // Only 0-4 are valid types.
    type = (type % 5) || 0;

    if (typeof finishedCallback != "function") {
        finishedCallback = function() {};   
    }

    var ctx = new (window.audioContext || window.webkitAudioContext);
    var osc = ctx.createOscillator();

    osc.type = type;

    osc.connect(ctx.destination);
    osc.noteOn(0);

    setTimeout(function() {
        osc.noteOff(0);
        finishedCallback();
    }, duration);

};

jsFiddle .

Versuchen Sie wie folgt: Es kann leicht für Sie ....

function play_beep() {
  var snd = new Audio("http://www.externalharddrive.com/waves/computer/hello.wav");
  snd.play();
  return false;
}
<input type="submit" value="Play Beep" onclick="return play_beep();" />

Ich denke, die beste Wahl ein Java-Applet, den Job sein würde ...

Dies ist nicht möglich mit nativer Javascript. Sie könnten möglicherweise ein ActiveX-Steuerelement schreiben, es zu tun, aber.

Lösung von Alex gab mir Uncaught TypeError: osc.noteOn is not a function

Das tut es aber:

Play = (function() {
  
  var ctx = new(AudioContext || webkitAudioContext);
  
  return function(duration, freq, finishedCallback) {
    duration = +duration;
    if (typeof finishedCallback != "function") {
      finishedCallback = function() {};
    }
    var osc = ctx.createOscillator();
    osc.type = 0;
    osc.connect(ctx.destination);
    osc.frequency.value = freq;
    
    if (osc.start) osc.start();
    else osc.noteOn(0);
    
    setTimeout(
      function() {
        if (osc.stop) osc.stop(0);
        else osc.noteOff(0);
        finishedCallback();
      }, duration
    );
  };
})();
Play(42, 666)

Nahm es von hier

Hope dies spart Ihnen einige Zeit

ich ehrlich gesagt habe nicht getestet, aber es wäre ein Blick wert,

Echt Java, wie ein emittieren piepen aber es hängt von Ihnen Ihr Kunde hat eine entsprechende Version des JDK auf jedem Rechner installiert, um sicherzustellen zu können, die Sie zielen.

Eigentlich ist dies möglich, wahrscheinlich aufgrund der neu in Java in der Zwischenzeit implementierten Funktionen. Hier ist ein kurzes Beispiel:

var context = new AudioContext();
var o = context.createOscillator();
o.type = "sine";
o.connect(context.destination);
o.start();
setTimeout(function(){ 
        o.stop();
}, 100);

Um mehr zu erhalten, besuchen Sie bitte die Website https: // marcgg. com / blog / 2016/11/01 / Javascript-Audio / , wo ich die Lösung gefunden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top