나는 Cocoa 환경에 존재하지 않는 프로그램을위한 플러그인을 작성하고있다. (C++ 명령 행 프로그램을 생각해 보자.) 관심이 있다면, 이것이 v8 노드 애드온 시스템입니다. 나는 아마 그래서이 물건을 할 수있는 새로운 pthread에 시작됩니다 실제로비 코코아 응용 프로그램에서 Foundation에 전화를 걸 때 NSRunLoop이 필요합니까?
void start(/*entry*/)
{
// No run loop is *necessarily* present.
AVCaptureSession * session = ...
}
void stop (/*entry*/)
{
// etc..
}
: 나는, 그래서 본질적 등, 같은 것을 화면을 기록, 따라서 AVCaptureSession의 사용을 만들기 위해이 플러그인을하고 싶습니다 그 중 어느 것도 차단하고 있지 않다는 것입니다. 내 질문은 주변 재단 인프라를 얼마나 설정해야하는지입니다. 나는 인상을하지 않을 경우 AVCapture에서 등 어떤 trickiness이 실패 할 수 있음을, 나는 거의 확실 @autoreleasepool을 {} 필요하지만, 실제로 스레드에서 실행되도록 내 자신의 기본 NSRunLoop를 시작해야합니다
BOOL isStillRecording = YES;
void start(/*entry*/)
{
// setup avcapture and what have you.
NSRunLoop *theRL = [NSRunLoop new];
while (isStillRecording && [theRL runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]);
}
void stop(/**entry**/)
{
// kill avcapture, maybe through async_dispatch to not stop on the start up.
isStillRecording = NO;
}