使用APEX节点JS文本到语音

时间:2014-09-17 08:25:46

标签: javascript html node.js text-to-speech oracle-apex

我正在尝试从我的APEX站点获取一个字符串到以下节点js webserver:

tts = require('node-tts-api');
express = require('express');

var app = express();

app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();
});

app.get('/hello/:text', function(req, res){
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    var text = req.param('text');

    tts.getSpeech(text, function(error, link) {
        res.write(link);
        res.end();
  });
});

var server = app.listen(3000, function(){
      console.log('Listening on port 3000');
});

在APEX中,我执行以下动态JavaScript操作:

var url = 'http://127.0.0.1:3000/hello/' + $('#P4_TEXT').val();
$.get( url, function( data ) {
  var url = data;
   console.log('get start');
   console.log(url);
  var player = document.createElement('player');
  player.setAttribute('src', url);
  player.setAttribute('type', 'audio/mp3');
  document.body.appendChild(player);
  player.play();
});

控制台未显示我为调试添加的任何日志条目。当我开始动态动作时,没有任何反应。当我手动输入URL时,浏览器会永久加载,但不会返回任何数据。是否有任何错误,或者我是否理解错误?

2 个答案:

答案 0 :(得分:1)

在客户端,您可以使用带有提交输入/按钮的表单。在服务器端,我可以建议你使用Express和body解析器。您可以在那里找到示例:How to retrieve POST query parameters?

答案 1 :(得分:1)

刚刚将动态动作更改为以下代码,一切正常。

   var url = 'http://apex.mt-ag.com:1337/tts/' + $( P4_X ) .val();
    $.get( url, function( data ) {
      var url = data;
       console.log('get start');
       console.log(url);
    var snd = new Audio(url);
    snd.play();
     });