Я пытаюсь затушить дорожку AVComposition (это звуковая дорожка для видео).
Я могу начать с нуля без проблем, но у меня много проблем с постепенным исчезновением в конце. Вот мой код:
AVMutableAudioMixInputParameters *audioMixParameters = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:compositionAudioTrack];
[audioMixParameters setVolume:0.0 atTime:kCMTimeZero];
[audioMixParameters setVolumeRampFromStartVolume:0.0 toEndVolume:1.0 timeRange:CMTimeRangeMake(kCMTimeZero, CMTimeMake(150, kVideoFPS))];
CMTime fadeOutBegin = CMTimeMake((length - 5) * kVideoFPS, kVideoFPS);
[audioMixParameters setVolumeRampFromStartVolume:1.0 toEndVolume:0.0 timeRange:CMTimeRangeMake(fadeOutBegin, totalDuration)];
AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix];
audioMix.inputParameters = [NSArray arrayWithObject:audioMixParameters];
length
- это NSUInteger, который представляет собой длину видео в секундах.
totalDuration
- это CMTime общей продолжительности видео с временной шкалой kVideoFPS
kVideoFPS
является константой со значением 30
Моя цель - начать затухание через 5 секунд после окончания композиции. Я пробовал все виды вещей, таких как CMTimeMakeWithSeconds. Я также поменял местами значения постепенного изменения, и оно работает нормально (уменьшение громкости с 1,0 до 0,0 в самом начале).
Любые мысли с благодарностью!