【发布时间】:2013-06-20 14:36:56
【问题描述】:
我正在开发一个简单的视频编辑应用程序。我想在我的应用程序中添加慢动作。我注意到 AVMutableCompositionTrack 类中有一个 scaleTimeRange 方法,因此我使用它来实现我的目的。我发现 scaleTimeRange 在视频轨道上效果很好,但对音轨没有任何影响。这意味着音轨仍以原始速度播放。
以下是我的代码:
CMTime insertionPoint = kCMTimeZero;
double wholeDuration = CMTimeGetSeconds([asset duration]);
double doubleDuration = CMTimeGetSeconds([asset duration])*2.0;
CMTime trimmedDuration = CMTimeMakeWithSeconds(wholeDuration, 600.0);
// Create a new composition
self.mutableComposition = [AVMutableComposition composition];
// Insert video and audio tracks from AVAsset
if(assetVideoTrack != nil) {
AVMutableCompositionTrack *compositionVideoTrack = [self.mutableComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, trimmedDuration) ofTrack:assetVideoTrack atTime:insertionPoint error:&error];
[compositionVideoTrack scaleTimeRange:CMTimeRangeMake(kCMTimeZero, trimmedDuration) toDuration:CMTimeMakeWithSeconds(doubleDuration, 600.0)];
}
if(assetAudioTrack != nil) {
AVMutableCompositionTrack *compositionAudioTrack = [self.mutableComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, trimmedDuration) ofTrack:assetAudioTrack atTime:insertionPoint error:&error];
[compositionAudioTrack scaleTimeRange:CMTimeRangeMake(kCMTimeZero, trimmedDuration) toDuration:CMTimeMakeWithSeconds(doubleDuration, 600.0)];
}
谁能给我一些关于这个问题的建议?谢谢!
【问题讨论】:
-
您找到使用 scaletimeRange 减慢音频速度的解决方案了吗?我也遇到了同样的问题。?
-
这里也一样,你找到解决办法了吗?
-
@dizy 我开始为这个问题提供赏金。让我们检查回复。 .
标签: ios objective-c avfoundation openal