2017-09-15 118 views
0

我需要使用AVPlayer在播放流收音机的开始和恢复中进行音量淡入。我发现了一个例子:AVPlayer音量淡入

assert(_player.currentItem.tracks.firstObject); 
AVMutableAudioMixInputParameters* fadeIn = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:_player.currentItem.tracks.firstObject]; 
[fadeIn setVolume:0 atTime:kCMTimeZero]; 
[fadeIn setVolume:1 atTime:CMTimeMake(2, 1)]; 
NSMutableArray* paramsArray = [NSMutableArray new]; 
[paramsArray addObject:fadeIn]; 
AVMutableAudioMix* audioMix = [AVMutableAudioMix audioMix]; 
audioMix.inputParameters = paramsArray; 
_player.currentItem.audioMix = audioMix; 

但在现实的时间,我在第一线与IDE警告“不兼容的指针类型发送“AVPlayerItemTrack * _Nullable为键入‘AVAssetTrack * _Nullable’参数”,在第二次碰撞线。

我最近与avplayer工作和需要帮助

谢谢。

回答

0

我有解决方法使用MPVolumeView

for (UIView *view in [volumeView subviews]){ 
     if (![view.class.description isEqualToString:@"MPVolumeSlider"]) { 
      continue; 
     } 

     UISlider *volumeViewSlider = (UISlider *)view; 
     // volume from 0 to 1 
     [volumeViewSlider setValue:volume animated:YES]; 
     [volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside]; 

     break; 
    } 

希望它可以帮助

+0

谢谢。但我需要编程将音量从零增加到1,而无需用户交互 –

+0

AVPlayer具有属性音量。你可以尝试改变它吗? –

+0

是... _player.volume = _player.volume + 0.05;如果(_player.volume == 1)返回,则返回 ; else { [self performSelector:@selector(soundFadeOut)withObject:nil afterDelay:0.3]; } –