python - Pepper 上的 processRemote 类型与 ALAudioDevice 不匹配错误

标签 python nao-robot pepper choregraphe

我想录制 Pepper 麦克风的声音并将其传输到服务器。 我按照 the naoqi documentation 上的代码操作并将其改编为Choregraphe python box

当我启动该程序时,出现以下错误:

[ERROR] ALAudioDeviceClient :threadReader:0 Error on processRemote, stopping thread:    AudioModule::processRemote  Type mismatch

这是我的代码:

import qi

class AudioModule(object):
    def __init__(self):
        super(AudioModule, self).__init__()
        self.moduleName = "AudioModule"
        try :
            self.ALAudioDevice = ALProxy("ALAudioDevice")
        except Exception, e:
            self.logger.error("Error when creating proxy on ALAudioDevice:")
            self.logger.error(e)

    def begin_stream(self):
        self.ALAudioDevice.setClientPreferences(self.moduleName, 16000, 3, 0)
        self.ALAudioDevice.subscribe(self.moduleName)

    def end_stream(self):
        self.ALAudioDevice.unsubscribe(self.moduleName)

    def processRemote( self, nbOfChannels, samplesByChannel, altimestamp, buffer ):
        nbOfChannels = nbOfChannels
        #mylogger = qi.Logger("data")
        #mylogger.info("It works ! " + nbOfChannels)

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self, False)
        self.audio = AudioModule()

    def onLoad(self):
        self.serviceId = self.session().registerService("AudioModule", self.audio)
        pass

    def onUnload(self):
        if self.serviceId != -1:
            self.session().unregisterService(self.serviceId)
            self.serviceId = -1
        pass

    def onInput_onStart(self):
        self.audio.begin_stream()

    def onInput_onStop(self):
        self.audio.end_stream()

processRemote 函数的结构与示例相同,为什么会出现类型不匹配错误?

提前致谢!

最佳答案

“类型不匹配”或“转换”错误通常可能来自您获取 naoqi 模块的方式。在这里你可以用“旧”(naoqi v.1)方式得到它:

self.ALAudioDevice = ALProxy("ALAudioDevice")

这可能会产生转换错误。您可以尝试通过 session 以新方式获取它吗:

self.ALAudioDevice = self.session().service("ALAudioDevice")

关于python - Pepper 上的 processRemote 类型与 ALAudioDevice 不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950804/

相关文章:

python - Wagtail API - 如何排除字段?

python - 如何以正确的方式从pycurl中抽象出来

python - 获取最近检测到的障碍物的距离和方向

java - 在 Android 上使用 jNAOqi

nao-robot - 如何启动Aldebaran ServiceManager?

java - 是否可以在 Android Pepper Robot 模拟器中测试讨论操作

python - 打印 Python 变量的内存地址

python - python site-packages 中的一些包不显示

javascript - 如何读取小辣椒机器人的二维码?

javascript - Pepper 在程序运行期间崩溃