A small number of crashes are being reported on Firebase. When attempting to use the insertTimeRange:ofAsset:atTime:error: method of AVMutableComposition, a crash occurred with the error message -[__NSArrayM insertObject:atIndex:]: object cannot be nil.
Most of them appear in versions of ios 17.0 and above.
Here's my code:
- (AVMutableComposition *)createtrimAsset:(AVAsset *)asset
andStartTime:(CGFloat)startTime
endTime:(CGFloat)endTime{
NSError *error = nil;
CGFloat timescale = 1000000;
AVMutableComposition *mutableComposition = [AVMutableComposition composition];
CMTime sStartTime = CMTimeMakeWithSeconds(CMTimeGetSeconds(asset.duration)*startTime, timescale);
CMTime eEndTime = CMTimeMakeWithSeconds(CMTimeGetSeconds(asset.duration)*endTime, timescale);
[mutableComposition insertTimeRange:CMTimeRangeMake(sStartTime, CMTimeSubtract(eEndTime, sStartTime)) ofAsset:asset atTime:kCMTimeZero error:&error];
return mutableComposition;
}
I attempted to reproduce this crash by deliberately setting the timeRange or asset to unusual values, such as asset=nil, or asset.duration=0, or asset.duration=NAN, but all attempts failed.
What could be causing this exception? Any advice would be of great help to me.