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

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


value的类型为AL::ALValue。我如何将其转换为int,因为在这种情况下,当前正在讲的语言应该是0,而在当前不讲的语言是1。我试图用不同的方法将其强制转换为int或number或string,但没有成功。

当我将此功能与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可以实现吗?

最佳答案

在回调中设置值(所有函数都返回promise,可以在其上附加回调: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

08-06 02:18