2016-06-14 3 views
1
나는 사용자가 예를 들어, 정지 버튼을 클릭 할 때 사운드 트랙을 페이드 아웃, 나는 소리

볼륨 AVMutableAudioMixInputParameters

-(void)soundFadeOut{ 

AVPlayerItem *myAVPlayerItem = mainPlayer.currentItem; 
AVAsset *myAVAsset = myAVPlayerItem.asset; 
NSArray *audioTracks = [myAVAsset tracksWithMediaType:AVMediaTypeAudio]; 

NSMutableArray *allAudioParams = [NSMutableArray array]; 
for (AVAssetTrack *track in audioTracks) { 

     AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:track]; 
     [audioInputParams setVolumeRampFromStartVolume:1.0 toEndVolume:0 timeRange:CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake(5, 1))]; 
     [allAudioParams addObject:audioInputParams]; 

} 
AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix]; 
[audioMix setInputParameters:allAudioParams]; 
[myAVPlayerItem setAudioMix:audioMix];} 

을 페이드 아웃이 코드를 사용하려면

를 사용하여 페이드 아웃 그러나 나는 버튼 소리를 클릭하면 볼륨은 한 번에 0으로 이동합니다. 지금 내 잘못을 알고

답변

0

, 그것은 내 경우에는 현재 두 번째 페이드 아웃이 시작됩니다 것을 내가 두 번째로 첫 번째 CMTimeMake 점 것을 발견 CMTimeRange

 CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake(5, 1); 

의 첫 번째 CMTime 매개 변수에 있었고, 다른 CMTimeMake은 페이드 아웃 기간 동안이다.