我正在开发一款可以播放用户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];
}
答案 0 :(得分:0)
iOS 7在AVPlayer上引入了2个新属性:'volume'和'muted'。您应该可以使用它们来独立更改音频级别。