我现在用谷歌搜索了半天,我想问题是我不知道真正的问题是什么,所以我没有把它谷歌正确!
最好将代码放入:
<!doctype html>
<html>
<head><title>test</title></head>
<body>
<audio controls>
<source src="http://translate.google.com/translate_tts?tl=en&q=Canada" type="audio/mpeg">
</audio>
</body>
</html>
如果您将其保存为html文件并在浏览器中打开(在Firefox / Windows上测试),音频将毫无问题地播放。
现在我要启动一个nodejs应用程序并创建这个概念验证服务器:
var express = require('express'),
app = express(),
bodyparser = require('body-parser'),
methodOverride = require('method-override'),
morgan = require('morgan'),
port = Number(process.env.PORT || 8090);
app.use(express.static(__dirname + '/public'));
app.use(bodyparser.json());
app.use(bodyparser.json({'type':'application/vnd.api+json'}));
app.use(bodyparser.urlencoded({'extended':'true'}));
app.use(methodOverride('X-HTTP-Method-Override'));
app.use(morgan('dev'));
app.get('*', function(req, res){
res.render('index');
});
app.listen(port, function(){
console.log('running port: ' + port);
});
当我运行它时,我会收到这些错误:
HTTP load failed with status 404. Load of media resource http://translate.google.com/translate_tts?tl=en&q=Maple failed.
All candidate resources failed to load. Media load paused.
我当时认为它是一个CORS问题,但后来我向自己证明了这是一个错误的猜测,只需将一个url添加到一个mp3文件:
http://transom.org/wp-content/uploads/2004/03/stereo_96kbps.mp3
它有效!如果我提供一个mp3文件的URL,简单的html文件和nodejs服务的文件都可以正常工作。然后我尝试将类型添加到音频源标签:
type="audio/mpeg"
这证明在这里没有效果。
那真正的问题是什么?