- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在阅读 GStreamer 应用程序开发人员手册,它在消息处理/事件处理的上下文中讨论了管道总线,他们讨论了 2 个函数:gst_bus_add_watch() 和 g_signal_connect()。看来这两个功能是可以互换的。应用手册说:
Note that if you’re using the default GLib mainloop integration, you can, instead of attaching a watch, connect to the “message” signal on the bus.
第 27 页。这两个函数有什么区别,它们在什么情况下有用?谁使用我们在这些函数中注册的回调?元素本身是否调用回调?
最佳答案
如果您正在使用 gst_bus_add_watch(),那么您将提供一个回调,当消息可用时将调用该回调。
如果您调用 gst_bus_add_signal_watch() 那么它会注册一个默认回调,该回调会将 GSource 注册到主循环。这使得可以使用信号。
它在功能方面是等效的,但是如果您是编写一个基于 glib/gtk 的应用程序,在任何地方使用信号可能会使您的代码更加一致。
关于c - gst_bus_add_watch() 和 g_signal_connect() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220063/
我正在阅读 GStreamer 应用程序开发人员手册,它在消息处理/事件处理的上下文中讨论了管道总线,他们讨论了 2 个函数:gst_bus_add_watch() 和 g_signal_connec
我是一名优秀的程序员,十分优秀!