簡體   English   中英

在Android gstreamer中使用多個進程!

[英]Use multiple processes in Android gstreamer!!‏

我正在閱讀gstreamer的Android教程。 我想作一個簡單的管道從一個android手機到另一個, 像這樣 我已經閱讀了以下問題: 在一個進程中多次加載相同的gstreamer元素 ,以及JNI-多線程 ,但是它們並沒有幫助我解決當前的問題。

我想進行兩個過程來使android手機發送和接收音頻!

在Linux上,我將使用fork() ,如下所示:

p = fork();
if p==0{
    //pipeline1
}
else {
   //pipeline2
}

但這在Android上不起作用,出現此錯誤:

{
g_source_set_callback: assertion `source != NULL' failed
Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1)
}

我該如何解決?

使用GStreamer,您可以在同一進程中運行2個管道,而不必擔心線程已在內部進行處理。

void
start (GError **error) {
  GstElement *pipe1;
  GstElement *pipe2;

  *error = NULL;
  pipe1 = gst_parse_launch ("src ! enc ! mux ! sink", error);
  if (*error != NULL)
    return;
  pipe2 = gst_parse_launch ("src ! demux ! dec ! sink", error);
  if (*error != NULL)
    return;
  gst_element_set_state (pipe1, GST_STATE_PLAYING);
  gst_element_set_state (pipe2, GST_STATE_PLAYING);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM