У нас есть приложение для редактирования видео для iPhone.Приложение случайно падает, когда мы пытаемся прочитать AVAssetTrack из AVURLAsset для правильного медиа-файла, помещенного по одному и тому же URL каждый раз.Крушение началось только на iPhone 7 плюс после iOS 12.0.Он никогда не падает на любом другом телефоне.Вылетает во всех кодах, где мы получаем доступ к треку.Ниже приведен один пример такого кода
-(void)addCMSegmentDataInAVCompositionVideoTrack:(DTVideoSegmentData*)videoSegmentData withType:(int)videoType{
AVURLAsset* videoAsset = [[AVURLAsset alloc]initWithURL:videoSegmentData.assetURL options:nil];
CMTime singleClipDisplayTime = videoSegmentData.duration;
CMTime rangeStart = videoSegmentData.rangeStartTime;
CMTimeRange video_timeRange = CMTimeRangeMake(rangeStart,singleClipDisplayTime);
videoSegmentData.videoTimeRange = CMTimeRangeMake(videoSegmentData.startTime,singleClipDisplayTime);
if (videoType==VIDEO_ONE) {
[self.compositionVideoOneTrack insertTimeRange:video_timeRange ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:videoSegmentData.startTime error:nil];
videoSegmentData.compositionAudioTrack = [self createCMAVCompositionAudioTrackWithVideo1SegmentData:videoSegmentData];
}}
. Приложение определенно завершится сбоем, как 2/10 вызовов этой функции с тем же URL-адресом, сообщив об ошибке, что объект с индексом 0 не существует.Это происходит только на iPhone 7 плюс и ни на одном другом устройстве.Авария всегда на этой линии
[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]