如何在GPUImage中立即停止解码?

时间:2013-11-11 10:02:53

标签: ios opengl-es gpuimage

使用GPUImageMovie嵌入掩码解码MP4压缩视频。

如果用户在视频解码期间按下Home按钮,则问题是该应用程序因OpenGL陷阱而崩溃。 iOS不允许在后台使用OpenGL。

有没有办法告诉GPUImageMovie立即停止解码,包括视频线程?

1 个答案:

答案 0 :(得分:1)

您应该在处理电影的视图控制器中监听UIApplicationWillResignActiveNotification和UIApplicationWillEnterForegroundNotification:

// handles the user pressing the home or power button while the camera is onscreen
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(didResignActive:)
                                             name: UIApplicationWillResignActiveNotification
                                           object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(willEnterForeground:)
                                             name:UIApplicationWillEnterForegroundNotification
                                           object:nil];

然后你应该添加适当的方法来响应通知:

-(void) didResignActive: (NSString *) notification {
    //stop processing the movie
}

-(void) willEnterForeground: (NSString *) notification {
    // start processing the movie
}

我很确定你可以通过致电[movie startProcessing];开始处理并停止使用[movie endProcessing];处理,但我不是肯定的。