2

我正在与 Pure Data 合作在 Android 上构建对声音敏感的应用程序。在完成所有修补之后,我现在希望能够不依赖 libpd 方法(例如设置侦听器和信息接收方法),因此我可以通过几行代码将 Pd 与任何 Activity 一起使用。

问题是我希望能够根据 Activity 以不同的方式处理从 Pd 获得的输出(我现在有一个多活动应用程序)。但我似乎无法找到一种方法来做到这一点,而不覆盖 Pd 调度程序上的侦听器,从而导致代码混乱和样板代码过多。

我一直在寻找一种方法来构建我自己的自定义侦听器,当 libpd 从 Pd 接收信息时调用该侦听器,但这会为 Activity 本身添加更多代码行!

这就是我现在处理每个活动信息的方式(简化)。

pd.getMyDispatcher().addListener("bonk-cooked", new PdListener.Adapter() {
    @Override
    public void receiveList(String source, Object... objects) {
        String bonkOutput;

        int template = (int) Double.parseDouble(objects[0].toString());
        float velocity = Float.parseFloat(objects[1].toString());
    }
};
4

1 回答 1

0

libPD基本上是与 PD 引擎一起的包装代码。分配 pd 补丁后,您可以找到从包装器中调用的确切函数,并在可能的情况下直接使用这些函数(在您的编码环境中)。

并不是所有的编译器都支持这么简单的混合编码语言。但我很确定当你查看包装代码时你会找到你需要的东西。您还将找到这些功能需要哪些参数。还要小心这些参数,因为一些包装函数有助于在将它们交给 pd 引擎之前进行评估,反之亦然。

于 2019-09-18T03:40:21.583 回答