我们使用 GPUImageMovie 解码带有嵌入掩码的 MP4 压缩视频。
如果用户在视频解码期间按下主页按钮的问题 - 应用程序因 OpenGL 陷阱而崩溃。iOS 不允许在后台使用 OpenGL。
有没有办法告诉 GPUImageMovie 立即停止解码,包括视频线程?
您应该在处理影片的视图控制器中监听 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];
但我并不肯定。