Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在GTK3.0中使用gstreamer同时播放视频和音频_C_Audio_Gtk3_Gstreamer 1.0 - Fatal编程技术网

C 如何在GTK3.0中使用gstreamer同时播放视频和音频

C 如何在GTK3.0中使用gstreamer同时播放视频和音频,c,audio,gtk3,gstreamer-1.0,C,Audio,Gtk3,Gstreamer 1.0,我有一个GUI,我在上面播放视频。我对GUI使用Gtk3.0,对视频播放使用gstreamer1.0。但当播放视频时,我想播放音频。所以,在播放视频时,我想给出信息音频信息。播放音频时,视频应不停止播放。我使用gstreamer示例代码,并根据自己修改了代码。(示例代码是:)我不知道如何在背景中添加第二个元素(音频)。我应该如何添加第二个元素 您可以添加此形状。无需使用gst_init(&argc,&argv)。只需在代码中添加管道。您可以在gstreamer网站上找到此代码 #包括 int m

我有一个GUI,我在上面播放视频。我对GUI使用Gtk3.0,对视频播放使用gstreamer1.0。但当播放视频时,我想播放音频。所以,在播放视频时,我想给出信息音频信息。播放音频时,视频应不停止播放。我使用gstreamer示例代码,并根据自己修改了代码。(示例代码是:)我不知道如何在背景中添加第二个元素(音频)。我应该如何添加第二个元素

您可以添加此形状。无需使用
gst_init(&argc,&argv)。只需在代码中添加
管道
。您可以在gstreamer网站上找到此代码

#包括
int main(int argc,char*argv[]){
GstElement*管道;
GstBus*总线;
GstMessage*msg;
/*初始化GStreamer*/
gst_init(&argc,&argv);
/*修建管道*/
管道=gst\u解析\u启动(“playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm“,空);
/*开始玩*/
gst元素设置状态(管道、gst状态);
/*等待错误或EOS*/
总线=gst\u元件\u获取\u总线(管道);
msg=gst_总线_定时_弹出_过滤(总线、gst_时钟_时间_无、gst_消息_错误| gst_消息_EOS);
/*免费资源*/
如果(msg!=NULL)
gst_消息_unref(msg);
商品及服务税(巴士);
gst\元素\集合\状态(管道,gst\状态\空);
gst_对象_unref(管道);
返回0;
}
 #include <gst/gst.h>

int main(int argc, char *argv[]) {
  GstElement *pipeline;
  GstBus *bus;
  GstMessage *msg;

  /* Initialize GStreamer */
  gst_init (&argc, &argv);

  /* Build the pipeline */
  pipeline = gst_parse_launch ("playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm", NULL);

  /* Start playing */
  gst_element_set_state (pipeline, GST_STATE_PLAYING);

  /* Wait until error or EOS */
  bus = gst_element_get_bus (pipeline);
  msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);

  /* Free resources */
  if (msg != NULL)
    gst_message_unref (msg);
  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);
  return 0;
}