Jack中注册非默认类型端口返回nullptr,如何解决?
我的运行操作
我尝试在Jack中创建非默认类型端口(即非音频和非MIDI类型),虽文档显示应支持,但未找到相关示例或讨论,不确定是否可行。
我运行了以下代码:
jack_port_t *ret1 = jack_port_register(client, "testAudio", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); jack_port_t *ret2 = jack_port_register(client, "hw2p", "my port type", JackPortIsInput, 256);
运行结果
ret1返回有效端口,但ret2为nullptr。
预期结果
两者均应返回有效的非空端口。
相关文档
Jack API中jack_port_register函数描述如下:
jack_port_t* jack_port_register ( jack_client_t * client, const char * port_name, const char * port_type, unsigned long flags, unsigned long buffer_size )
……所有端口都有类型,可为任何非NULL且非零长度字符串。Jack API内置部分类型,如JACK_DEFAULT_AUDIO_TYPE或JACK_DEFAULT_MIDI_TYPE
关于buffer_size参数说明:
“若为非内置端口类型,必须为非零值,否则该参数将被忽略。”
恳请提供帮助!
内容的提问来源于stack exchange,提问作者wcroughan
相关产品推荐
相关产品推荐

