如何暂停 JACK 音频客户端
How to pause JACK audio client
我正在将 JACK 音频连接套件集成到我的应用程序中,但遇到了一个基本但烦人的问题。
我基本上是从他们自己的 API 复制并粘贴 simple_client example (github code),但是 jack_shutdown()
方法只使用 exit(1)
而不是任何暂停机制。我试过使用这两种方法:
void jack_shutdown(void *arg){
jack_deactivate(client);
jack_client_close(client);
}
尽管音频停止,但当 运行 与之前相同的代码首次启动 JACK 客户端时,从 simple_client
- int main ()
,它会使应用程序崩溃。我猜这是因为 jack_client_close(client)
实际上 returns 以下消息:
Released audio card Audio0
Released audio card Audio1
audio_reservation_finish
谁能告诉我 "pause" 函数更合适?如果要关闭音频系统,停止功能也很有用 - 但可以选择重新启动它。
我还没有在我的应用程序中这样做,但是通过查看 Ardour 的代码,我猜
jack_client_close(client);
我查看了 Ardor,因为我知道它允许在会话期间断开连接并重新连接到 JACK。
好吧,我不是专家,但如果你真正想做的是暂停输出信号,你应该使用 jack_port_disconnect() 而不是断开 source_port 与 destination_port 的连接,然后 jack_connect () 再次使用 source_port.
我正在将 JACK 音频连接套件集成到我的应用程序中,但遇到了一个基本但烦人的问题。
我基本上是从他们自己的 API 复制并粘贴 simple_client example (github code),但是 jack_shutdown()
方法只使用 exit(1)
而不是任何暂停机制。我试过使用这两种方法:
void jack_shutdown(void *arg){
jack_deactivate(client);
jack_client_close(client);
}
尽管音频停止,但当 运行 与之前相同的代码首次启动 JACK 客户端时,从 simple_client
- int main ()
,它会使应用程序崩溃。我猜这是因为 jack_client_close(client)
实际上 returns 以下消息:
Released audio card Audio0
Released audio card Audio1
audio_reservation_finish
谁能告诉我 "pause" 函数更合适?如果要关闭音频系统,停止功能也很有用 - 但可以选择重新启动它。
我还没有在我的应用程序中这样做,但是通过查看 Ardour 的代码,我猜
jack_client_close(client);
我查看了 Ardor,因为我知道它允许在会话期间断开连接并重新连接到 JACK。
好吧,我不是专家,但如果你真正想做的是暂停输出信号,你应该使用 jack_port_disconnect() 而不是断开 source_port 与 destination_port 的连接,然后 jack_connect () 再次使用 source_port.