Javascript 一旦上传到服务器,TTS就无法播放

Javascript 一旦上传到服务器,TTS就无法播放,javascript,text-to-speech,mobile-application,Javascript,Text To Speech,Mobile Application,我正在使用语音合成开发文本到语音。可以在浏览器(Chrome)上播放或支持语音。但当上传到服务器并在移动应用程序中查看时,似乎文字转换语音甚至无法播放 有没有办法让它甚至可以上传到服务器上?我真的被卡住了,因为我对所有这些东西都很陌生 Javascript代码: onload = function() { if ('speechSynthesis' in window) with(speechSynthesis) { var playEle = do

我正在使用语音合成开发文本到语音。可以在浏览器(Chrome)上播放或支持语音。但当上传到服务器并在移动应用程序中查看时,似乎文字转换语音甚至无法播放

有没有办法让它甚至可以上传到服务器上?我真的被卡住了,因为我对所有这些东西都很陌生

Javascript代码:

onload = function() {
        if ('speechSynthesis' in window) with(speechSynthesis) {


            var playEle = document.querySelector('#play');
            var pauseEle = document.querySelector('#pause');
            var stopEle = document.querySelector('#stop');
            var flag = false;

            playEle.addEventListener('click', onClickPlay);
            pauseEle.addEventListener('click', onClickPause);
            stopEle.addEventListener('click', onClickStop);

            function onClickPlay() {
                if(!flag){
                    flag = true;
                    utterance = new SpeechSynthesisUtterance(document.querySelector('article').textContent);
                    utterance.lang = 'zh-CN';
                    utterance.onend = function(){
                        flag = false; playEle.className = pauseEle.className = ''; stopEle.className = 'stopped';
                    };
                    playEle.className = 'played';
                    stopEle.className = '';
                    speak(utterance);
                }

                let r = setInterval(() => {
                    console.log(speechSynthesis.speaking);
                        if (!speechSynthesis.speaking) {
                            clearInterval(r);
                        } else {
                        speechSynthesis.resume();
                        }
                    }, 14000);

                 if (paused) { /* unpause/resume narration */
                    playEle.className = 'played';
                    pauseEle.className = '';
                    resume();
                } 
            }

            function onClickPause() {
                if(speaking && !paused){ /* pause narration */
                    pauseEle.className = 'paused';
                    playEle.className = '';
                    pause();
                }
            }

            function onClickStop() {
                if(speaking){ /* stop narration */
                    stopEle.className = 'stopped';
                    playEle.className = pauseEle.className = '';
                    flag = false;
                    cancel();

                }
            }

        }

        else { /* speech synthesis not supported */
            msg = document.createElement('h5');
            msg.textContent = "Detected no support for Speech Synthesis";
            msg.style.textAlign = 'center';
            msg.style.backgroundColor = 'red';
            msg.style.color = 'white';
            msg.style.marginTop = msg.style.marginBottom = 0;
            document.body.insertBefore(msg, document.querySelector('div'));
        }

    }

我看你有(演讲合成)套装。请注意,不建议这样做:另外,使用“onload”意味着必须在运行javascript之前加载大图像。DOMContentLoaded在这里可能会更好我制作了一个基本的html,它可以正常工作,所以也许你想在图像完全加载之前运行它?否则,请显示完整的html和javascript,并指定哪些操作系统/浏览器组合不起作用,谢谢。@Frazer我将向您显示完整的文件(如上)。事情是我试图加载到服务器上的移动应用程序,但无法播放语音。当我使用诸如Chrome之类的浏览器时,我的声音可以播放出来。当前的移动应用程序是Android版本。好吧,我不会把所有这些都输入出来!如果没有一个可复制的例子,我也无能为力。您确定脚本正在加载吗?如果您添加document.querySelector('article')。textContent=“Hello”;在你的期末考试之前}它会改变页面吗?我看你已经设置了with(speechSynthesis)。请注意,不建议这样做:另外,使用“onload”意味着必须在运行javascript之前加载大图像。DOMContentLoaded在这里可能会更好我制作了一个基本的html,它可以正常工作,所以也许你想在图像完全加载之前运行它?否则,请显示完整的html和javascript,并指定哪些操作系统/浏览器组合不起作用,谢谢。@Frazer我将向您显示完整的文件(如上)。事情是我试图加载到服务器上的移动应用程序,但无法播放语音。当我使用诸如Chrome之类的浏览器时,我的声音可以播放出来。当前的移动应用程序是Android版本。好吧,我不会把所有这些都输入出来!如果没有一个可复制的例子,我也无能为力。您确定脚本正在加载吗?如果您添加document.querySelector('article')。textContent=“Hello”;在你的期末考试之前}它会改变页面吗?