我需要哪些步骤来释放GPUImageMovieWriter对象?如果我想安全地多次使用MovieWriter,该怎么办?
使用我创建的GPUImage在应用程序中发生内存泄漏.输出超过movieWriter视频两倍时发生内存泄漏.使用Instruments进行调试,结果表明GPUImageMovieWriter尚未发布.
实施概述
@property (nonatomic, strong) GPUImageMovieComposition *gpuMovieFileComp;
@property (nonatomic, weak) GPUImageMovieWriter *movieWriter;
@property (nonatomic, weak) GPUImageFilter *exportFilter;
@property (nonatomic, weak) AVMutableComposition *mixComposition;
@property (nonatomic, weak) AVMutableVideoComposition *transformVideoComposition;
@property (nonatomic, weak) AVMutableAudioMix *mutableAudioMix;
_gpuMovieFileComp = [[GPUImageMovieComposition alloc] initWithComposition:self.mixComposition andVideoComposition:self.transformVideoComposition andAudioMix:self.mutableAudioMix];
GPUImageMovieWriter *mr = [[GPUImageMovieWriter alloc]initWithMovieURL:_exportUrl size:CGSizeMake(MOVIE_SIZE_W, MOVIE_SIZE_H)];
[_gpuMovieFileComp enableSynchronizedEncodingUsingMovieWriter:mr];
_movieWriter = mr;
mr = nil;
_movieWriter.shouldPassthroughAudio = YES;
_movieWriter.encodingLiveVideo = NO;
_movieWriter.hasAudioTrack = YES;
_gpuMovieFileComp.playAtActualSpeed = YES;
_gpuMovieFileComp.audioEncodingTarget = _movieWriter;
[_gpuMovieFileComp addTarget:_exportFilter];
[_exportFilter addTarget:_movieWriter];
[_movieWriter setCompletionBlock:^{
weakSelf.gpuMovieFileComp removeTarget:weakSelf.exportFilter];
[weakSelf.exportFilter removeTarget:weakSelf.MovieWriter]; …Run Code Online (Sandbox Code Playgroud)