HTML5语音输入和Google翻译文本
我正在创建一个语音/文本备忘录Web应用程序。 这里:http://gustavstromberg.se/sandbox/html5/localstorage/看看它的来源(很简短,大部分是css)
这是:
一切正常,但在不同的浏览器。 语音输入工作完美,只有在铬。 在safari中的文字到语音的作品。
要动态地将备忘录加载到我使用的audio> source元素中:
$("#spokenmemory").html("<source src='http://translate.google.com/translate_tts?tl=en&q="+localStorage['memory']+"' />");
(localStorage ['记忆']包含我存储的文本备忘录)
要使用Google文本语音转换功能播放我最近保存的备忘录,请使用:
$("#listenplay").click(function(){
$("#spokenmemory")[0].play();
});
(口述内存是我的音频标签的id属性)
这并不适用于Chrome浏览器,但如果我访问翻译链接(例如:http://translate.google.com/translate_tts?tl=en&q=Japan,我的文本备忘录是“日本”)单独的浏览器选项卡,然后返回到我的网站,并重新加载页面(与相同的文本备忘录“日本”保存),播放工程。 多么奇怪,并且开始!
有没有人有这种奇怪的行为的想法?
这是因为Google限制某些类型的请求以防止服务被重载。 因此,当您的浏览器尝试获取音频文件时,音频文件不会被抓取。 一旦你访问了翻译链接,音频文件就被提取并被缓存,这就是播放工作的原因(只要文本提示是相同的)。 这是我的观察,但我不太确定。
当我使用CURL来获取文件时,这是我得到的回应:
那是一个错误。
您的客户端没有权限获取URL /translate_tts?q=hello
来自此服务器的/translate_tts?q=hello
。
我尝试了努力Gustav,这是我经过一些研究和测试后发现的。
看起来Chrome浏览器在播放MP3时遇到了问题(格式为google)。 我能想到的唯一解决方案是将文件(cURL?)发送到服务器,然后将其呈现给用户。 我假设Google发布官方API时,也会有某种格式选项。
http://code.google.com/p/chromium/issues/detail?id=45152
http://www.trygve-lie.com/blog/entry/html_5_audio_element_and(是的,播放按钮与背景颜色相同,质朴)
链接地址: http://www.djcxy.com/p/34435.html