|
|
在日常使用 Ulanzi Deck 及其配套软件 Ulanzi Studio 时, 我发现目前在"旋钮(Dial)"的交互设计和插件底层架构上存在一些局限性, 导致用户无法实现高度自定义的组合操作.
请看下图, 这是默认的旋钮配置
注意到, 旋钮现在支持五种行为, 按下, 正旋, 反旋, 按下正旋, 按下反旋.
从 com.ulanzi.windowActions.ulanziPlugin 提供的 apiTypes.d.ts 看, 实际支持的行为是三种.
然而, 现在的 Ulanzi Studio 并不允许**分别**为每一个行为绑定一个插件行为, 相反, 它是将一个插件行为绑定到旋钮整体上, 然后插件行为内来处理不同的旋钮行为.
这就造成了一个问题, 如果我想让旋钮在旋转时调用obs插件来调整混音器音量, 但同时想让旋钮在按下后继续使用默认插件的暂停/播放功能, 这就是做不到的.
我尝试解决这个问题, 我的想法是制作一个"路由"插件, 如图
我通过扫描插件目录, 获得了每个插件行为, 然而, 转发遇到了困难.
我尝试使用 api 的 sendToPlugin 给其他的插件发送 run 等命令, 但通过观察, 其他插件是无法接到的, 宿主服务大概做了拦截.
诚然, 让一个插件触发另一个插件可能是危险的, 我也理解官方拦截的理由.
所以我建议官方自己出一个"旋钮路由"插件作为内置插件, 或者更直接的, 将旋钮的行为分开, 允许对不同的旋钮行为绑定不同的插件行为.
|
|