Как отрегулировать громкость 2 AVPlayers самостоятельно? - PullRequest
2 голосов
/ 07 февраля 2012

Я работаю над приложением, которое воспроизводит два разных трека из пользовательской библиотеки 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];

}

1 Ответ

0 голосов
/ 11 октября 2013

iOS 7 представляет 2 новых свойства в AVPlayer: «громкость» и «отключение звука».Вы должны иметь возможность использовать их для независимого изменения уровней звука.

...