1

当我尝试ALMemory使用以下代码获取数据时:

session.service("ALMemory").done(function (ALMemory) {
    var value = ALMemory.getData("ALTextToSpeech/TextDone");
});

value是类型AL::ALValue。我如何将其转换为 int,因为在这种情况下,当前说话的预期为 0,当前不讲话的预期为 1。我试图用不同的方法将它转换为 int 或数字或字符串,但没有成功。

当我将此功能与 python SDK 一起使用时:

def onLoad(self):
    self.memory = ALProxy("ALMemory")

def onUnload(self):
    self.memory = None

def onInput_checkIfSpeaking(self, p):
    value = self.memory.getData("ALTextToSpeech/TextDone")

value是 int 类型,而不是AL::ALValue. 这可以用 JavaScript 实现吗?

4

2 回答 2

4

在回调中设置您的值(所有函数都返回承诺,您可以在其上附加回调:)promise.then(onFulfilled, onRejected)

session.service("ALMemory").then( function (ALMemory) {
    ALMemory.getData("ALTextToSpeech/TextDone").then( function (TextDone) {
         var value = TextDone;
    });
});

作为记录,文档在这里:http ://doc.aldebaran.com/2-5/dev/js/index.html

于 2017-11-29T00:15:24.333 回答
0

您是否尝试过标准的java:

value = (int)(self.memory.getData("ALTextToSpeech/TextDone")) 

?

于 2017-11-23T10:12:23.243 回答