1
我有這樣的代碼: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];
}
它不工作。奇怪的是:如果我使用:
3210而不是第一行工作正常。但是第一部分的float值恰好是10秒。
你能幫我嗎?