首页 > 请教一个js解释问题

请教一个js解释问题

define(function(require,exports,module){

    var Sound= function(){};

    var timerIds = '';
    Sound.prototype.playNumbersSound=function(path,mobile){
        var ids = timerIds.split(',');
        for(var i = 0;i < ids.length; i++){
            if(ids[i]){
                clearTimeout(ids[i]);
            }
        }
        timerIds = '';
        var numbers = mobile.split('');
        try {
            if(window.softWeb){
                for(var i = 0;i < numbers.length; i++){
                    var keyNumber = numbers[i];
                    var id = setTimeout("window.softWeb.playSound('" + keyNumber +"');",500 * i);
                    timerIds += id + ',';
                }
            }else if(window.parent.softWeb){
                for(var i = 0;i < numbers.length; i++){
                    var keyNumber = numbers[i];
                    var id = setTimeout("window.parent.softWeb.playSound('" + keyNumber +"');",500 * i);
                    timerIds += id + ',';
                }
            }else if(window.parent.parent.softWeb){
                for(var i = 0;i < numbers.length; i++){
                    var keyNumber = numbers[i];
                    var id = setTimeout("window.parent.parent.softWeb.playSound('" + keyNumber +"');",500 * i);
                    timerIds += id + ',';
                }
            }else{
                for(var i = 0;i < numbers.length; i++){
                    var keyNumber = numbers[i];
                    var id = setTimeout("window.createSoundElement('"+ path + keyNumber +"');",500 * i);
                    timerIds += id + ',';
                }
            }
        } catch (ex) {
            try{
                for(var i = 0;i < numbers.length; i++){
                    var keyNumber = numbers[i];
                    var id = setTimeout("window.createSoundElement('"+ path + keyNumber +"');",500 * i);
                    timerIds += id + ',';
                }
            }catch(e){
            }
        }
    };

    window.createSoundElement=function(soundFile){
        var number = soundFile;
        if (navigator.userAgent.toLowerCase().match(/trident\/([\d.]+)/) != null) {
            soundFile = soundFile + ".mp3";
        } else {
            soundFile = soundFile + ".wav";
        }
        var soundElem, bodyElem, isHTML5;
        isHTML5 = true;
        try {
            if (typeof document.createElement("audio").play=="undefined") isHTML5 = false;
        } catch (ex) {
            isHTML5 = false;
        }
        bodyElem = document.getElementsByTagName("body")[0];
        if (!bodyElem) bodyElem = document.getElementsByTagName("html")[0];
        soundElem = document.getElementById("numberSound" + number);
        if (soundElem){
            if(isHTML5){
                soundElem.play();
            } else if(navigator.userAgent.toLowerCase().indexOf("msie")>-1){
                soundElem.setAttribute("src", soundFile);
            }else{
                try {
                    soundElem.Play();
                } catch (ex) {
                    soundElem.object.Play();
                }
            }
            return;
        };
        if (isHTML5) {
            soundElem = document.createElement("audio");
            soundElem.setAttribute("id", "numberSound" + number);
            soundElem.setAttribute("src", soundFile);
            bodyElem.appendChild(soundElem);
            soundElem.play();
        } else if(navigator.userAgent.toLowerCase().indexOf("msie")>-1){
            soundElem = document.createElement("bgsound");
            soundElem.setAttribute("id", "numberSound" + number);
            soundElem.setAttribute("loop", 1);
            soundElem.setAttribute("src", soundFile);
            bodyElem.appendChild(soundElem);
        } else {
            var paramElem;
            soundElem = document.createElement("object");
            soundElem.setAttribute("id", "numberSound" + number);
            soundElem.setAttribute("type", "audio/wav");
            soundElem.setAttribute("style", "display:none;");
            soundElem.setAttribute("data", soundFile);
            paramElem = document.createElement("param");
            paramElem.setAttribute("name", "autostart");
            paramElem.setAttribute("value", "false");
            soundElem.appendChild(paramElem);
            bodyElem.appendChild(soundElem);
            try {
                soundElem.Play();
            } catch (ex) {
                soundElem.object.Play();
            }
        }
    };

    module.exports=new Sound();
});

这是一段js代码,可能是用来控制语音的
是这样的 我们有个系统界面有语音实时播报功能,这个系统可以在普通浏览器中登录,也可以在专用的客户端中登录,在专用客户端中登录可以实时播报,但是在浏览器中就没有了,想知道是不是这段代码控制的,因为要是有可能的话我想请人制作个浏览器语音实时播报插件,现在这个专用客户端实在太卡了厂家还一直不优化...
万分感谢,另外我不是技术,就想知道有没有这个可能性


从代码上看,应该是支持在浏览器中播放的,而且还考虑到了对不支持 HTML5 的浏览器降级处理。
不过这段代码只是写了播放的功能,也说不准在调用这段代码的地方有其他控制。

可以找个前端开发人员现场对代码调试下。

【热门文章】
【热门文章】