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