使用JS从ALMemory中获取数据值

Getting data value from ALMemory using JS

当我尝试使用以下代码从 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 可以实现吗?

你试过标准的吗java:

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

?

在回调中设置您的值(所有函数 return 承诺,您可以在其上附加回调: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