У меня есть этот код:AVAsset не резки правильно со временем
float seconds = CMTimeGetSeconds(editableAsset.duration);
AVMutableComposition *thirtMutableComposition = [AVMutableComposition composition];
if (assetVideoTrack != nil) {
AVMutableCompositionTrack *compositionVideoTrack = [thirtMutableComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
AVAssetTrack *videoAssetTrack= [[editableAsset tracksWithMediaType:AVMediaTypeVideo] lastObject];
compositionVideoTrack.preferredTransform = videoAssetTrack.preferredTransform;
[compositionVideoTrack insertTimeRange:CMTimeRangeMake(CMTimeMakeWithSeconds(1, NSEC_PER_SEC), CMTimeMakeWithSeconds(seconds, NSEC_PER_SEC)) ofTrack:assetVideoTrack atTime:kCMTimeZero error:nil];
}
if (assetAudioTrack != nil) {
AVMutableCompositionTrack *compositionAudioTrack = [thirtMutableComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(CMTimeMakeWithSeconds(1, NSEC_PER_SEC), CMTimeMakeWithSeconds(seconds, NSEC_PER_SEC)) ofTrack:assetAudioTrack atTime:kCMTimeZero error:nil];
}
Это не работает. Странная вещь: Если я использую:
float seconds = 10;
Вместо первой строки он отлично работает. Но значение float в первой части равно ровно 10 секундам.
Вы можете мне помочь?