Я работаю над приложением, которое воспроизводит два разных трека из пользовательской библиотеки iPod.Мне нужно иметь возможность регулировать громкость двух треков независимо.Оглядываясь в Интернете, я нашел предложение настроить AVMutableAudioMix на элементах playerItms, которые активны в каждом из двух AVPlayer.
Я подклассифицировал AVPlayer, чтобы включить некоторые функции, которые мне нужны для эмуляции musicPlayer, такого как iPod.Ниже приведен метод внутри моего подкласса AVPlayer, который я хотел бы использовать для регулировки громкости playerItem игроков.Этот метод вызывается моим viewController при изменении sliderValue.
Мой результат заключается в том, что громкость не изменяется.Кто-нибудь знает, может ли этот подход работать?Мне кажется, что если это не так, мой единственный выбор - покопаться в 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];
}