如何在使用ClutterGstPlayback编写应用程序时收到“静音”通知

时间:2016-07-15 05:39:25

标签: gstreamer clutter

我使用 ClutterGstPlayback 对象编写了一个音频应用程序。我希望我的应用程序在我的应用程序被静音时得到通知(应用程序可以被音频管理器静音)。我的用例是在应用程序静音时暂停应用程序并稍后再次播放。 仅供参考,ClutterGstPlayback实现CluttGstPlayer接口,我无法找到应用静音时发出的任何属性或信号。 您能否告诉我如何在App静音时收到通知?

1 个答案:

答案 0 :(得分:0)

我不确定杂乱是如何实现的,但是如果它使用了pulseink,你可以修补它以发出应用程序标签,你可以做出反应。

这是gst_pulsesink_set_mute实现并添加到那里:

GstStructure *str = gst_structure_new("custom_muted", 
    "muted", G_TYPE_BOOLEAN, mute, NULL);
GstMessage *msg = gst_message_new_application(GST_OBJECT(psink), str);
if (!gst_element_post_message(psink, msg)) {
    fail..
} 

然后在您的巴士观察中,您对GST_MESSAGE_APPLICATION作出反应并抓住它:

if (gst_message_has_name(p_msg, "custom_muted")) {
    gboolean muted;
    const GstStructure *str = gst_message_get_structure(p_msg);
    gst_structure_get_boolean(str, "muted", &muted);
    if (muted)
         do_my_fancy_pause();
}