Objective c AVMutableAudioMix-Can';不褪色
我正在尝试淡出AVComposition曲目(视频的音频曲目) 我可以在一开始就淡出,没问题,但是在最后淡出时我有很多困难。这是我的密码:Objective c AVMutableAudioMix-Can';不褪色,objective-c,ios,avfoundation,cmtime,Objective C,Ios,Avfoundation,Cmtime,我正在尝试淡出AVComposition曲目(视频的音频曲目) 我可以在一开始就淡出,没问题,但是在最后淡出时我有很多困难。这是我的密码: AVMutableAudioMixInputParameters *audioMixParameters = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:compositionAudioTrack]; [audioMixParameters setVolume:0.0
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
是一个整数,它是以秒为单位的视频长度
totalDuration
是视频总持续时间的CMTime,其时间刻度为kVideoFPS
kVideoFPS
是一个值为30的常数
我的目标是在作文结束后5秒开始淡出。我尝试过各种方法,比如CMTimeMakeWithSeconds。我还反转了淡入的值,效果很好(在开始时将音量从1.0淡入到0.0)
任何想法都非常感谢 CMTimeRangeMake的第二个参数是
CMTimeRange
的持续时间,而不是时间范围的结束时间():
CMTimeRange CMTimeRangeMake(CMTime开始,CMTime持续时间)代码>
试着在构图的最后5秒淡出:
CMTime fadeOutEnd = CMTimeMake(5 * kVideoFPS, kVideoFPS);
[audioMixParameters setVolumeRampFromStartVolume:1.0 toEndVolume:0.0 timeRange:CMTimeRangeMake(fadeOutBegin, fadeOutEnd)];
对于那些将AVAudioMix
/AVMutableAudioMix
与流媒体结合使用时遇到麻烦的人,请注意,每个苹果公司目前只支持基于文件的资产
来源:
(在技术说明底部附近)您确定长度大于5秒吗?是的-长度是可变的,但至少为17秒。您找到了解决方案吗?查看CMTime的详细信息