1

我不清楚如何正确停止和解除分配 MPPGraph。我创建了一个与此非常相似的框架。每次以某种方式调用 dealloc 时都会引发此异常。Thread 1: Exception: "waitUntilDoneWithError: should not be called on the main thread".

我不知道如何不在主线程中调用它,并希望有人对此有所了解。

在这里你可以找到调用 mediapipe 框架的 swift 代码。此示例是使用可以在此处找到的框架创建的。

4

1 回答 1

1

对于任何遇到同样问题的人。此处已解决问题并提出了解决方案。

编辑:最后一点可能是错误的,但我以这种方式使用了 dealloc:

- (void)dealloc {
  self.mediapipeGraph.delegate = nil;
  [self.mediapipeGraph cancel];
  // Ignore errors since we're cleaning up.
  [self.mediapipeGraph closeAllInputStreamsWithError:nil];
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [self.mediapipeGraph waitUntilDoneWithError:nil];
  });
}
于 2020-05-26T11:34:26.060 回答