AVPlayer音量淡入
问题描述:
我需要使用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工作和需要帮助
谢谢。
答
我有解决方法使用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;
}
希望它可以帮助
谢谢。但我需要编程将音量从零增加到1,而无需用户交互 –
AVPlayer具有属性音量。你可以尝试改变它吗? –
是... _player.volume = _player.volume + 0.05;如果(_player.volume == 1)返回,则返回 ; else { [self performSelector:@selector(soundFadeOut)withObject:nil afterDelay:0.3]; } –