2012-01-14 2 views
1

Я пытаюсь потушить дорожку AVComposition (ее аудиодорожку для видео).AVMutableAudioMix - Can not fade out

Я могу угаснуть его с самого начала без проблем, но у меня много проблем, угасающих в конце. Вот мой код:

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. Я также изменил значения fade in, и он отлично работает (с самого начала уменьшает объем от 1,0 до 0,0).

Любые мысли очень ценятся!

+0

Вы уверены, что длина больше чем за 5 секунд? – Till

+0

Yep - длина переменной, но, как минимум, 17 секунд. – gamblor87

+0

Вы нашли решение этого ..? –

ответ

0

Второй параметр CMTimeRangeMake является длительность CMTimeRange, а не время окончания временного интервала (ref):

CMTimeRange CMTimeRangeMake(CMTime start, CMTime duration);

Попробуйте исчезать за последние 5 секунд композиции :

CMTime fadeOutEnd = CMTimeMake(5 * kVideoFPS, kVideoFPS); 
[audioMixParameters setVolumeRampFromStartVolume:1.0 toEndVolume:0.0 timeRange:CMTimeRangeMake(fadeOutBegin, fadeOutEnd)]; 
0

Для тех, кто работает в неприятности с использованием AVAudioMix/AVMutableAudioMix в сочетании с с потокового мультимедиа , обратите внимание, что за Apple в настоящее время поддерживается только файл.

Источник:

https://developer.apple.com/library/content/qa/qa1716/_index.html

(в нижней части технической записки)