nodejs无法播放来自URL的音频

时间:2015-02-11 02:58:35

标签: html5 audio html5-audio

我现在用谷歌搜索了半天,我想问题是我不知道真正的问题是什么,所以我没有把它谷歌正确!

最好将代码放入:

<!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"

这证明在这里没有效果。

那真正的问题是什么?

0 个答案:

没有答案