delegate,顾名思义就是托管,代理。
比如你要卖房子,你把它挂在中介,中介帮你发布在网上,有买家买的话,中介就会通知你,所以delegate就是那个万恶的中介。
头文件VideoRecorderProtocol.h我们可以这么写:
@protocol VideoRecorderDelegate <NSObject>
//录制结束
- (void)finished:(id)session error:(NSError *)err;
@end
实现代码VideoRecorderKit.m中可以这么写:
- (void)finished {
//回调录制finished通知给app
if(self.delegate
&& [self.delegate respondsToSelector:@selector(finished:)]){ //用来判断是否有以finished命名的方法
NSLog(@"通知应用结束...\n");
[self.delegate finished:self error:nil];
}
}
什么时候调用呢? 在关闭录制的时候
- (void)stopRecoder {
......
//停止写文件 关闭编码Target
[self.filter removeTarget:_movieWriter];
self.videoCamera.audioEncodingTarget = nil;
[_movieWriter finishRecording];
//通知应用录制结束了
[self finished];
}
网友评论