为什么不是我的AVPlayer音量淡出?
我想使用AVMutableAudioMixInputParameters的setVolumeRampFromStartVolume方法将我的AVPlayer的音量淡化为0。 这是我的代码:
-(void)fadeOutVolume { // AVPlayerObject is a property which points to an AVPlayer AVPlayerItem *myAVPlayerItem = AVPlayerObject.currentItem; AVAsset *myAVAsset = myAVPlayerItem.asset; NSArray *audioTracks = [myAVAsset tracksWithMediaType:AVMediaTypeAudio]; NSMutableArray *allAudioParams = [NSMutableArray array]; for (AVAssetTrack *track in audioTracks) { AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:track]; [audioInputParams setVolumeRampFromStartVolume:1.0 toEndVolume:0 timeRange:CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake(5, 1))]; [allAudioParams addObject:audioInputParams]; } AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix]; [audioMix setInputParameters:allAudioParams]; }
任何人都可以看到这个代码有什么问题吗? 这不会正确淡出音量。
我错过了这个关键线:
[myAVPlayerItem setAudioMix:audioMix];
这是一个相对简单的解决scheme,我很失望,通常超级快速和敏锐的StackOverflow社区没有发现问题。
[audioInputParams setVolumeRampFromStartVolume:1.0 toEndVolume:0 timeRange:CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake(5, 1))];
在这里你将开始设置为1.0,结束为0,所以只有audio淡出