为什么我的AVPlayer音量不会消失?

时间:2012-07-30 03:42:38

标签: objective-c ios audio video 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];

}

有人能看出这段代码有什么问题吗?它没有正确淡出音量。

2 个答案:

答案 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,因此只有音频渐渐消失