如何独立调整2个AVPlayers的音量?

时间:2012-02-06 21:00:30

标签: ios avplayer

我正在开发一款可以播放用户iPod库的两首不同曲目的应用。 我需要能够独立调整两个轨道的音量。 环顾四周,我发现了一个建议,即调整两个AVPlayers中每个AVPlayer中活动的playerItem上的AVMutableAudioMix。

我已经将AVPlayer子类化为包含一些我需要模拟像iPod这样的musicPlayer的功能。 下面是我想要用来调整玩家playerItem音量的AVPlayer子类中的方法。 当sliderValue被更改时,我的viewController会调用此方法。

我的结果是音量不会改变。 有谁知道这种方法是否有效? 在我看来,如果不是我唯一的选择是挖掘Core Audio。

感谢。

-(void)setPlayerItemVolume:(float)itemVolume
{
        self.volume = itemVolume;

        AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];

        AVPlayerItem *currentPlayerItem = [self currentItem];

        CMTime currentTime = [currentPlayerItem currentTime];

        [audioInputParams setVolume:itemVolume atTime:currentTime];

        //[audioInputParams setTrackID:[currentPlayerItem trackID]];

        //[allAudioParams addObject:audioInputParams];

        NSArray *allAudioParams = [[NSArray alloc]initWithObjects:audioInputParams, nil];


        AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix];

        [audioMix setInputParameters:allAudioParams];

        [currentPlayerItem setAudioMix:audioMix];

}

1 个答案:

答案 0 :(得分:0)

iOS 7在AVPlayer上引入了2个新属性:'volume'和'muted'。您应该可以使用它们来独立更改音频级别。