2011-06-12 132 views
1

我试图在html5音频元素中播放google翻译的audiofile。我的代码是:从url下载mp3,php

<script> 
    $("#play_button").click(function(){ 
     $("#memory")[0].play(); 
    }); 
</script> 

<audio id="memory" preload="auto" style="display: none; "> 
    <source src="http://translate.google.com/translate_tts?tl=en&q=hello"> 
</audio> 

它通常会播放声音“hello”。这工作我Safari,但不是在谷歌浏览器,我想要它。

如果我“预加载”一次声音(将URL加载到另一个选项卡中),然后再次在我的页面上运行此代码,它将起作用。可能是因为音频被加载到某个缓存中。 (我对此不太了解......)

是否有无论如何追踪音频是否加载并在播放声音之前让浏览器等待。或者是将文件下载到服务器,然后通过新文件引用我的音频的解决方案?

+0

请尝试这些... ** http://translate.google.com/translate_tts?tl = zh_CN&q = hello **和** http://translate.google.com/translate_tts?tl%3Den%26q %3Dhello ** – 2011-06-12 16:31:10

+0

我没有看到区别。这两个工程可以在浏览器中加载 – Gustav 2011-06-12 16:34:40

+0

您的查询** http://translate.google.com/translate_tts?tl = en & q = hello **,不适用于谷歌浏览器。我正在直接尝试。 – 2011-06-12 16:35:55

回答

0

浏览器按照它在html文件中出现的顺序解释html。如果将脚本标记移动到音频标记下方,则应在运行脚本之前加载音频。

+0

不错,会试试! – Gustav 2011-06-12 16:38:04

+0

不幸运。顺便说一句,这是我的应用程序,http://gustavstromberg.se/sandbox/html5/localstorage/ – Gustav 2011-06-12 22:13:42

+0

@Gustav:我想知道它是否与Chrome的这个bug有关:http://www.google.com/support/forum/p/Chrome/thread?tid = 54ad1a9afc77645f&hl = en您是否尝试引用一些本地文件,您可以在其中控制名称/ id3信息/ etc? – 2011-06-13 14:56:36