当前位置:  开发笔记 > 编程语言 > 正文

PC扬声器通过javascript发出哔哔声?

如何解决《PC扬声器通过javascript发出哔哔声?》经验,为你挑选了2个好方法。

我正在重新审视我们很久以前建立的ID扫描仪站程序,我有一个用户要求发出系统蜂鸣声的请求.我们正在考虑将系统移动到网络浏览器,但是是否可以通过javascript或其他方式调用扬声器?它不需要跨浏览器兼容,但它可能需要在Windows或Linux上运行.有问题的电台没有配备声卡或外部扬声器,因此请求使用PC扬声器.

我知道有人会这么说,所以我会先解决这个问题:我不关心你对应用程序制造噪音的看法,这不适合你.用户要求它,它是有道理的,硬件扫描仪已经发出噪音了.是的,我们提供具有可区分文本和颜色的视觉反馈,但我们发现人们接受现有的蜂鸣声作为积极反馈并添加更多音频上下文会有所帮助.



1> LiraNuna..:

使用JavaScript,这是不可能的 - 除了cookie和新的HTML5本地存储之外,JavaScript无法访问客户端计算机.

但是,你可以做的是使用一个可以通过JavaScript控制的Java applet - 隐藏或不隐藏.

你可以在这里找到一个例子.

这需要在客户端计算机上安装Java运行时.



2> alex..:

今天,使用JavaScript可以实现。

这是我写的一个快速而肮脏的功能...

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。

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有