我正在尝试使用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];
}
有人能看出这段代码有什么问题吗?它没有正确淡出音量。
答案 0 :(得分:5)
我错过了这个关键线:
[myAVPlayerItem setAudioMix:audioMix];
这是一个相对简单的解决方案,我很失望通常超级快速和敏锐的StackOverflow社区没有发现问题。
答案 1 :(得分:-2)
[audioInputParams setVolumeRampFromStartVolume:1.0 toEndVolume:0 timeRange:CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake(5, 1))];
在此设置start为1.0并结束为0,因此只有音频渐渐消失