2012-02-06 2 views
2

사용자 iPod 라이브러리에서 두 개의 다른 트랙을 재생하는 앱을 만들고 있습니다. 두 트랙의 볼륨을 독립적으로 조정할 수 있어야합니다. 온라인을 둘러 보면서 두 AVPlayers에서 각각 활성화되어있는 playerItems에서 AVMutableAudioMix를 조정하라는 제안을 발견했습니다.2 개의 AVPlayers 볼륨을 독립적으로 조정하는 방법은 무엇입니까?

저는 iPod과 같은 musicPlayer를 에뮬레이션해야하는 몇 가지 기능을 포함하도록 AVPlayer를 서브 클래 싱했습니다. 아래는 player playersItem 볼륨을 조정하는 데 사용하려는 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

iOS 7에는 AVPlayer에서 '볼륨'및 '음소거'라는 두 가지 새로운 속성이 추가되었습니다. 오디오 레벨을 독립적으로 변경하는 데 사용할 수 있어야합니다.

관련 문제