【问题标题】:Html5 audio tag not working in Local IIS for Google translate_ttsHtml5 音频标签在 Google translate_tts 的本地 IIS 中不起作用
【发布时间】:2015-06-17 15:13:54
【问题描述】:

如果浏览器不支持我的项目的语音合成,尝试使用谷歌的 translate_tts 作为我的后备。

现在我无法让 html5 音频正常工作。 整天都在挠头并在谷歌上搜索为什么它对我不起作用。 然后我看到一些文章/论坛说这与 IIS 有关。所以我在我的站点之外做了一个测试代码来看看会发生什么,并且很惊讶它可以正常工作!但是,当在 IIS 中运行的原始项目中使用相同的代码时,它不起作用。它在使用 IIS EXPRESS 时有效。我检查了 IIS 中的 MIME 类型,并且有 mpeg 和 mp3。

即使在 javascript 中执行此操作也无法在 IIS 中运行。

TextToSpeech.Audio = document.createElement("AUDIO");
TextToSpeech.Audio.src = url;
TextToSpeech.Audio.playbackRate = 1;
TextToSpeech.Audio.preload = 'auto';
TextToSpeech.Audio.volume = 1; // 0 to 1;
TextToSpeech.Audio.addEventListener('ended', function () {
        //i have some code here...  
});
TextToSpeech.Audio.addEventListener('error', function (error) { });
TextToSpeech.Audio.play();

有没有人遇到过这个问题并碰巧解决了这个问题?非常感谢您的帮助,谢谢!

更新: 在谷歌搜索之后,这可能是因为我是从托管在具有正确主机名的 IIS 中的站点中调用它,并且我的 IIS Express 在 localhost:PORT 中运行该站点,谷歌视为 noreferrer?

【问题讨论】:

    标签: javascript html iis html5-audio google-text-to-speech


    【解决方案1】:

    从最近几天开始,谷歌似乎在该服务上放置了一个“验证码”,并使其无法再被服务器调用。所以这可能都没有实际意义。

    以前您只能将其称为 noreferrer,因此我认为 noreferrer 不是您的问题(或者可能是几天前开始的最少问题)。事实上,解决此问题的一种方法是将 ref='noreferrer' 添加到您的链接中。

    这可能是您最初的问题:使用 wget,您必须使用 -U Mozilla 选项,这使得 wget 看起来像是一个浏览器。如果您在没有它的情况下调用 url,它不会返回任何内容。所以如果有办法让你的 IIS 在调用 google url 时看起来像一个浏览器,那可能会起作用。

    此链接google text-to-speech artile 仍然可以在浏览器中使用,也许这会帮助您以您想要的方式使用它。

    但是...从 7 月 28 日开始,在我的 linux 服务器上使用 wget 多年后,我得到一个“503 服务不可用”。可能是因为它是计量的,而且我已经过度使用它......我希望它会重新出现。我每天只使用大约 100 次。

    他们总是说它“不公开”,但它被广泛使用...

    因此,如果您仍然尝试从 IIS 调用它,我认为这与从 linux 服务器调用它的行为类似。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多