Есть ли способ отменить/остановить GPUImageMovieWriter
и GPUImageMovie
после запуска startRecording
и startProcessing
?
GPUImage: отмена GPUImageMovieWriter
Ответы (3)
Недавно в GPUImageMovie
был добавлен новый метод, позволяющий отменить обработку видеофайла:
- (void)cancelProcessing;
Это позволит вам эффективно отменить обработку видео и кадры больше обрабатываться не будут.
Примите во внимание, что ваш GPUImageMovieWriter
's completeBlock будет вызываться в любом случае, поэтому у вас должен быть какой-то флаг, чтобы проверить, был ли вызван блок для успешного завершения или отмены.
Вот пример кода:
- (void)processVideo
{
_wasCancelled = NO;
self.imageMovie = [self createImageMovie];
self.filter = [self createFilter];
[imageMovie addTarget:filter]
self.movieWriter = [self createMovieWriter];
[self.movieWriter startRecording];
[self.imageMovie startProcessing];
[self.movieWriter setCompletionBlock:^{
[self.filter removeTarget:movieWriter];
[self.movieWriter finishRecording];
if (!_wasCancelled) {
// Do stuff with the video
}
}];
}
- (void)cancelVideoProcessing
{
_wasCancelled = YES;
[self.imageMovie cancelProcessing];
}
person
Kinopio
schedule
30.05.2013
Предполагая, что self.movieWriter является GPUImageMovieWriter, вам необходимо установить обратный вызов перед вызовом startRecording и startProcessing:
[self.movieWriter setCompletionBlock:^{
[self finishFilter];
}];
И тогда вы можете остановить обработку изображения с помощью:
[self.movieWriter endProcessing];
И обратный вызов:
- (void)finishFilter {
//remove all targets from your filter chain calling "removeAllTargets"
//then:
[self.movieWriter finishRecording];
self.movieWriter.completionBlock = nil;
self.movieWriter = nil;
}
person
Nikita
schedule
27.09.2012
Что, если я не хочу его заканчивать? Когда я говорю «отменить», я действительно имею в виду «отменить»; Я не хочу сохранять часть фильма.
- person John Estropia; 28.09.2012
Почему. Есть возможность отменить запись.
[self.movieWriter cancelRecording];
Видео не сохраняется, если оно каким-либо образом прерывается.
person
girish_vr
schedule
12.02.2013